勘误表

《Go 程序员面试笔试宝典》勘误表 #

请直接搜索对应的页面,如“第 255 页”,查看该页面的勘误内容。

第 9 页 #

  • 多了一个逗号
image
  • 少了一个括号
image

第 13 页 #

  • 调用 deferproc 函数
image

第 27 页 #

  • 形参是实参的一个复制
image

第 32 页 #

  • s/hamp/hmap
image

第 35 页 #

  • 返回 value 类型的零值
image

第 73 页 #

  • 运行结果有问题:
image
  • 图中变量标注有误:
image

第 76 页 #

  • IsClosed 函数返回 false
image

第 89 页 #

  • 多余的“个”
image

第 112 页 #

  • 当 n==5 时,描述有问题
image

第 113 页 #

  • context 包代码结构功能表格描述有问题
image

第 174 页 #

  • 图标注有误
image

第 186 页 #

  • 关于 M 的描述有误:
image

上面红框内的这两段话替换为:

Go 调度循环可以看成是一个“生产-消费”的流程。

生产端就是我们写的 go func()…语句,它会产生一个 goroutine。消费者是 M,所有的 M 都是在不断地执行调度循环:找到 runnable 的 goroutine 来运行,运行完了就去找下一个 goroutine……

P 的个数是固定的,它等于 GOMAXPROCS 个,进程启动的时候就会被全部创建出来。随着程序的运行,越来越多的 goroutine 会被创建出来。这时,M 也会随之被创建,用于执行 goroutine,M 的个数没有一定的规律,视 goroutine 情况而定。

第 192 页 #

  • s/_Grunnale/_Grunnable
image

第 211 页 #

  • 图 12-19 m0 标识错误
image

第 240 页 #

  • 12.14.1 小节中,“这时和P绑定的G正在进行系统调用,无法执行其他的G” 更改为 “这时和P绑定的M正在进行系统调用,无法执行其他的G”

第 255 页 #

  • 图 13-3 标识错误,如下图
image

第 258 页 #

  • 表 13-1 不同等级的浪费”下方算式错误
image ---
最后更新:2022.05.17