返回首页
苏宁会员
购物车 0
易付宝
手机苏宁

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

  • 服务承诺: 正品保障
  • 公司名称:
  • 所 在 地:
本店所有商品

  • 全新正版深入理解Go语言9787302613664清华大学出版社
    • 作者: 刘丹冰编著著 | 刘丹冰编著编 | 刘丹冰编著译 | 刘丹冰编著绘
    • 出版社: 清华大学出版社
    • 出版时间:2023-04
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    如梦图书专营店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品分类

    商品参数
    • 作者: 刘丹冰编著著| 刘丹冰编著编| 刘丹冰编著译| 刘丹冰编著绘
    • 出版社:清华大学出版社
    • 出版时间:2023-04
    • 版次:1
    • 印次:1
    • 页数:968
    • 开本:32开
    • ISBN:9787302613664
    • 版权提供:清华大学出版社
    • 作者:刘丹冰编著
    • 著:刘丹冰编著
    • 装帧:平装
    • 印次:1
    • 定价:119.00
    • ISBN:9787302613664
    • 出版社:清华大学出版社
    • 开本:32开
    • 印刷时间:暂无
    • 语种:暂无
    • 出版时间:2023-04
    • 页数:968
    • 外部编号:12565464
    • 版次:1
    • 成品尺寸:暂无

    篇Go语言修炼必经之路

    章深入理解Go语言协程调度器GPM模型

    1.1Go语言“调度器”的由来

    1.1.1单进程时代不需要调度器

    1.1.2多进程/多线程时代的调度器需求

    1.1.3协程提高CPU的利用率

    1.1.4Go语言的协程Goroutine

    1.1.5被废弃的Goroutine调度器

    1.2Go语言调度器GPM模型的设计思想

    1.2.1GPM模型

    1.2.2调度器的设计策略

    1..go func() 调度流程

    1.2.4调度器的生命周期

    1.2.5可视化GPM编程

    1.3Go调度器调度场景过程全解析

    1.3.1场景1: G1创建G2

    1.3.2场景2: G1执行完

    1.3.3场景3: G2开辟过多的G

    1.3.4场景4: G2本地满再创建G7

    1.3.5场景5: G2本地未满再创建G8

    1.3.6场景6: 唤醒正在休眠的M

    1.3.7场景7: 被唤醒的M2从全局队列批量取G

    1.3.8场景8: M2从M1中偷取

    1.3.9场景9: 自旋线程的优选

    1.3.10场景10: G发生阻塞的系统调用

    1.3.11场景11: G发生非阻塞的系统调用

    1.4小结

    第2章Go语言混合写屏障的GC全场景分析

    2.1G V.3标记-清除算法

    2.1.1标记清除(Mark and Sweep)算法的详细过程

    2.1.2标记清除算法的缺点

    2.2G V.5的三色标记法

    2.2.1三色标记法的过程

    2.2.2没有STW的三色标记法

    2..触发三色标记法不安全的必要条件

    .G V.5 的屏障机制

    ..1“强-弱”三色不变式

    ..2插入屏障

    ..删除屏障

    2.4G V.8的混合写屏障

    2.4.1混合写屏障(Hybrid Write Barrier)规则

    2.4.2场景1: 堆删除引用,成为栈下游

    2.4.3场景2: 栈删除引用,成为栈下游

    2.4.4场景3: 堆删除引用,成为堆下游

    2.4.5场景4: 栈删除引用,成为堆下游

    2.5小结

    第3章Go语言内存管理洗髓经

    3.1何为内存

    3.2内存为什么需要管理

    3.3操作系统是如何管理内存的

    3.3.1虚拟内存

    3.3.2MMU内存管理单元

    3.3.3虚拟内存本身怎么存放

    3.3.4CPU内存访问过程

    3.3.5内存的局部

    3.4如何用Go语言实现内存管理和内存池设计

    3.4.1基于Cgo的内存C接口封装

    3.4.2基础内存缓冲Buf实现

    3.4.3内存池设计与实现

    3.4.4内存池的功能单元测试

    3.4.5内存管理应用接口

    3.5Go语言内存管理之魂TCMalloc

    3.5.1TCMalloc

    3.5.2TCMalloc模型相关基础结构

    3.5.3ThreadCache

    3.5.4CentralCache

    3.5.5PageHeap

    3.5.6TCMalloc的小对象分配

    3.5.7TCMalloc的中对象分配

    3.5.8TCMalloc的大对象分配

    3.6Go语言堆内存管理

    3.6.1Go语言内存模型层级结构

    3.6.2Go语言内存管理单元相关概念

    3.6.3MCache

    3.6.4MCentral

    3.6.5MHeap

    3.6.6Tiny对象分配流程

    3.6.7小对象分配流程

    3.6.8大对象分配流程

    3.7小结

    第4章深入理解Linux网络I/O复用并发模型

    4.1网络并发模型中的几个基本概念

    4.1.1流

    4.1.2I/O作
    4.1.3阻塞等待

    4.1.4非阻塞忙轮询

    4.1.5阻塞与非阻塞对比

    4.2解决阻塞等待缺点的办法

    4.2.1阻塞死等待的缺点

    4.2.2解决阻塞等待的办法1: 多线程/多进程

    4..解决阻塞等待的办法2: 非阻塞忙轮询

    4.2.4解决阻塞等待的办法3: select

    4.2.5解决阻塞等待的办法4: epoll

    4.3什么是epoll

    4.4epoll的触发模式

    4.4.1水平触发

    4.4.2边缘触发

    4.5简单的epoll服务器

    4.5.1服务器端实现

    4.5.2客户端实现

    4.6Linux下常见的网络I/O复用并发模型

    4.6.1模型1: 单线程Accept(无I/O复用)

    4.6.2模型2: 单线程Accept+多线程读写业务(无I/O复用)

    4.6.3模型3: 单线程多路I/O复用

    4.6.4模型4: 单线程多路I/O复用+多线程读写业务(业务工作池)

    4.6.5模型5: 单线程I/O复用+多线程I/O复用(连接线程池)

    4.6.6模型5(进程版): 单进程多路I/O复用+多进程I/O复用

    4.6.7模型6: 单线程多路I/O复用+多线程I/O复用+多线程

    4.7小结

    第二篇Go语言编程进阶之路

    第5章有关Goroutine创建的分析

    5.1从操作系统分析进程、线程、协程的区别

    5.1.1进程内存

    5.1.2线程内存

    5.1.3执行单元

    5.2协程的切换成本

    5.2.1协程切换成本

    5.2.2线程切换成本

    5..内存占用

    5.3Go可以创建,如何定数

    5.3.1不控制Goroutine数量引发的问题

    5.3.2一些简单方法控制Goroutine的数量

    5.4动态保活Worker工作池设计

    5.4.1如何确定一个Goroutine已经死亡

    5.4.2Worker工作池的设计

    5.4.3测试Worker工作池

    5.5小结

    第6章Go语言中的逃逸现象,变量“何时在栈、何时在堆”

    6.1Go语言中的逃逸现象

    6.1.1Go语言中访问子函数的局部变量

    6.1.2C/C++中访问子函数的局部变量

    6.2逃逸分析过程示例

    6.2.1示例过程

    6.2.2new的变量在栈还是堆

    6.3普遍的逃逸规则

    6.3.1逃逸范例1

    6.3.2逃逸范例2

    6.3.3逃逸范例3

    6.3.4逃逸范例4

    6.3.5逃逸范例5

    6.3.6逃逸范例6

    6.3.7逃逸范例7

    6.3.8逃逸范例8

    6.4小结

    第7章interface剖析与Go语言中面向对象思想

    7.1interface的赋值问题

    7.2非空接口的interface内部构造

    7.2.1案例分析

    7.2.2空接口eface

    7..非空接口iface

    7.3空接口的interface内部构造

    7.4interface与*interface

    7.5面向对象思维理解interface

    7.5.1平铺式的模块设计

    7.5.2面向对象中的开闭原则

    7.5.3接口的意义

    7.5.4耦合度极高的模块关系设计

    7.5.5面向抽象层依赖倒转设计

    7.6小结

    第8章defer践行中的要领

    8.1defer的执行顺序

    8.2defer与return谁先谁后

    8.3函数返回值的初始化

    8.4有名函数返回值遇见defer的情况

    8.5defer遇见panic

    8.5.1defer遇见panic,但是并不捕获异常的情况

    8.5.2defer遇见panic,并捕获异常

    8.6defer中包含panic

    8.7defer下的函数参数包含子函数

    8.8小结

    第9章Go语言中常用的问题及能调试实践方法

    9.1如何分析程序的运行时间与CPU利用率

    9.1.1shell内置time指令

    9.1.2/usr/bin/time指令

    9.2如何分析Go语言程序的内存使用情况

    9.2.1占用内存情况查看

    9.2.2GODEBUG与gctrace

    9..runtime.ReadMemStats

    9.2.4pprof工具

    9.3如何获取Go语言程序的CPU能情况

    9.3.1通过Web界面查看且得到profile文件

    9.3.2使用pprof工具获取信息

    9.3.3profile文件获取信息

    9.3.4可视化图形查看及分析

    9.4小结

    0章make和new的原理区

    10.1变量的声明

    10.2Go语言中make与new的区别

    10.2.1new

    10.2.2make

    10..make与new的异同

    10.3slice与new关键字

    10.4小结

    1章精通Go Modules项目依赖管理

    11.1GOPATH的工作模式

    11.1.1什么是GOPATH

    11.1.2GOPATH模式的弊端

    11.2Go Modules模式

    11.2.1go mod命令

    11.2.2go mod环境变量

    11..GO111MODULE

    11.2.4GOPROXY

    11.2.5direct

    11.2.6GOSUMDB

    11.2.7GONOPROXY/GONOSUMDB/GOPRIVATE

    11.3使用Go Modules初始化项目

    11.3.1开启Go Modules

    11.3.2初始化项目

    11.3.3查看go.mod文件

    11.3.4查看go.sum文件

    11.4修改模块的版本依赖关系

    11.5小结

    2章AC、CAP、BASE的分布式理论推进

    12.1从本地事务到分布式理论

    12.2AC理论

    1.CAP理论

    1..1一致

    1..2可用

    1..分区容错

    12.4CAP的“3选2”明

    12.4.1基本场景

    12.4.2CAP特

    12.4.3分布式系统正常运行流程

    12.4.4分布式系统异常运行流程

    12.4.5“3选2”的必然

    12.5分布式BASE理论

    12.6小结

    第三篇Go语言框架设计之路

    3章Zinx框架基础服务构建

    13.1初探Zinx架构

    13.2Zinx-V0.1基础服务

    13.2.1Zinx-V0.1 代码实现

    13.2.2Zinx框架单元测试样例

    13..使用Zinx-V0.1完成应用程序

    13.3Zinx-V0.2简单的连接封装与业务绑定

    13.3.1Zinx-V0.2代码实现

    13.3.2使用Zinx-V0.2完成应用程序

    13.4小结

    4章Zinx框架路由模块设计与实现

    14.1IRequest 消息请求抽象类

    14.1.1创建抽象IRequest层

    14.1.2实现Request类

    14.2IRouter 路由配置抽象类

    14.2.1创建抽象的IRouter层

    14.2.2实现Router类

    14.3Zinx-V0.3集成简单路由功能

    14.3.1IServer增添路由添加功能

    14.3.2Server类增添Router成员

    14.3.3Connection类绑定一个Router成员

    14.3.4在Connection调用注册的Router处理业务

    14.4Server传递Router参数Connection

    14.5使用Zinx-V0.3完成应用程序

    14.5.1测试基于Zinx完成的服务器端应用

    14.5.2启动Server和Client

    14.6小结

    5章Zinx全局配置

    15.1Zinx-V0.4增添全局配置代码实现

    15.2使用Zinx-V0.4完成应用程序

    15.3小结

    6章Zinx消息封装模块设计与实现

    16.1创建消息封装类型

    16.2消息的封包与拆包

    16.2.1创建拆包封包抽象类

    16.2.2实现拆包封包类

    16..测试拆包封包功能

    16.3Zinx-V0.5代码实现

    16.3.1Request字段修改

    16.3.2集成拆包过程

    16.3.3提供封包的发送方法

    16.3.4使用Zinx-V0.5完成应用程序

    16.4小结

    7章Zinx多路由模式设计与实现

    17.1创建消息管理模块

    17.1.1创建消息管理模块抽象类

    17.1.2实现消息管理模块

    17.2Zinx-V0.6代码实现

    17.3使用Zinx-V0.6完成应用程序

    17.4小结

    8章Zinx读写分离模型构建

    18.1Zinx-V0.7代码实现

    18.2小结

    9章Zinx消息队列和任务工作池设计与实现

    19.1创建消息队列

    19.2创建及启动Worker工作池

    19.3将消息发送给消息队列

    19.4Zinx-V0.8代码实现

    19.5使用Zinx-V0.8完成应用程序

    19.6小结

    第20章Zinx连接管理及属设置

    20.1连接管理

    20.1.1创建连接管理模块

    20.1.2将连接管理模块集成到Zinx中

    20.1.3连接的带缓冲的发包方法

    20.1.4注册连接启动/停止自定义Hook方法功能

    20.1.5使用Zinx-V0.9完成应用程序

    20.2Zinx的连接属设置

    20.2.1给连接添加连接配置接口

    20.2.2连接属方法实现

    20..连接属Zinx-V0.10单元测试

    20.3小结

    2章基于Zinx框架的应用项目案例

    21.1应用案例介绍

    21.2MMO多人在线游戏AOI算法

    21.2.1网络法实现AOI算法

    21.2.2实现AOI格子结构

    21..实现AOI管理模块

    21.2.4求出九宫格

    21.2.5AOI管理区域格子添加删除作
    21.2.6AOI模块单元测试

    21.3数据传输协议Protocol Buffer

    21.3.1Protocol Buffer简介

    21.3.2数据交换格式

    21.3.3ProtoBuf环境安装

    21.3.4ProtoBuf语法

    21.3.5编译ProtoBuf

    21.3.6基于ProtoBuf协议的Go语言编程

    21.4MMO游戏服务器应用协议

    21.4.1协议定义

    21.4.2Proto3协议定义

    21.5构建项目与用户上线

    21.5.1构建项目

    21.5.2用户上线流程

    21.6世界聊天系统实现

    21.6.1世界管理模块

    21.6.2世界聊天系统实现

    21.7上线位置信息同步

    21.8移动位置与未跨越格子的AOI广播

    21.9玩家下线

    21.10移动与跨越格子的AOI广播

    21.11小结者

    刘丹冰(Aceld),Zinx(Golang轻量级TCP服务器开源框架)作者,现就职于好未来集团,担任Golang架构师、服务器端专家。拥有多年互联网、网络安全、智能家居领域及分布式云服务研发经验。曾就职于启明星辰,从事网络安全S(Intrusion Detection System,入侵检测系统)、IPS(IntrusionPreventionSystem,入侵防御系统)等研发工作。参与过互联网应急中心关口监测系统研发,并且担任重要岗位。曾任Haier U+ SmartHome智能家居、智能电视服务研发;传智教育科技C/C++、Golang项目研究员,参与并创作过多部C/C++、Golang研发课程及项目;Golang、C/C++业务线教学科研负责人。

    本书详细讲解在学习Go语言必经之路中的重点知识,采用大量精美详细的图文进行介绍,内容讲解深入浅出,极大地降低了理解Go语言底层精髓的学习门槛。本书共分为3篇:篇(~4章)深入讲解Go语言中GPM模型、Go语言垃圾回收中的GC三色标记法与混合写屏障、Go语言内存管理模型、网络I/O复用并发模型等;第二篇(5~2章)为Go语言实战中需要进阶的知识盲区介绍;第三篇(3~21章)为基于Go语言从0到1实现轻量级网络服务框架Zinx及相关应用案例。本书主要面向的读者是已经具有软件编程开发经验的,系统开发,期望(由Python、PHP、C/C++、Ruby、Java等编程语言)转职到Go语言开发的后端,期望深入理解Go语言特的计算机软件学者等。

    系统讲解Go语言的GMP模型、垃圾回收、Goroutine等语言特和实现原理,从实践的角度出发,系统讲解框架设计的方方面面,让读者通过一个实际的项目深入浅出地掌握Go语言看似简单,实则深奥的技术难点。本书的每个章节专题所描述的知识点和知识点之间具备流畅的衔接,遵循知识点吸收的三步法:“为什么这样?”“这样会如何?”“所以才这样。”的抽象编写架构。

    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购