Skip to content

本书中可能可以改进的地方 #33

@marjune163

Description

@marjune163

收集了一些可能可以改进的地方,但会过多关注于细节,也可能说的不对,所以本issue仅供参考。

1.1.2节-3

第5页

 协程读取管道时,阻塞的条件有:
-管道无缓冲区;
+管道无缓冲区,且不存在阻塞等待写入的协程;
协程写入管道时,阻塞的条件有:
-管道无缓冲区;
+管道无缓冲区,且不存在阻塞等待读取的协程;

image

1.1.3节-2-3

第10页流程图

与“sendq非空==N”的后续条件保持一致

-有缓冲区?
+qcount>0?

image

2.2.3节-5

第83页

for-range迭代channel的伪代码,将变量名”index“改为”value“更合理。
image

4.1节-2

第102页

-(3)从mcache的alloc[class]链表中查询可用的span。
+(3)从mcache的alloc[class*2]或alloc[class*2+1]链表中查询可用的span。

image

5.2节-3

第120页

-Add()设置的值必须与实际等待的goroutine的个数一致,否则会触发panic。
+Add()设置的值必须与实际等待的goroutine的个数一致,否则会触发panic或导致死锁。

image

7.3.1节-2-22

第171页

common.sub

-子测试列表
+并发运行的子测试列表

image

8.1.2节-1

第211页

-任何实现了该方法的结构体都可以作为error来使用
+任何实现了该方法的数据类型都可以作为error来使用

image

8.1.4节-3

第225页

-类型断言替换成errors.As()时需要先声明一个目标类型的指针变量
+类型断言替换成errors.As()时需要先声明一个目标类型的变量,再传入该变量的指针

示例中*os.PathError实现了error接口,即os.PathError的指针类型实现了error接口,因此声明了该类型的变量,再取该变量的指针(即指针的指针)传入errors.As()
image

9.3.2节-1

-GOMAXPROCS的值不超过64的话,timersBucket桶的数量等于GOMAXPROCS。
+GOMAXPROCS的值不超过64的话,timersBucket桶的数量不会超过GOMAXPROCS。

timersBucket桶为按需创建。
image

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions