Closed povsister closed 3 years ago
抱歉拖这么久才回复你,是的这段描述是不妥。
结合你的建议,拟修改如下:
-该方法返回一个channel,需要在select-case语句中使用,如"case <-context.Done():"。
+该方法返回一个用于探测Context是否取消的channel,当Context取消时会自动将该channel关闭。
-当context关闭后,Done()返回一个被关闭的管道,关闭的管道仍然是可读的,据此goroutine可以收到关闭请求;
-当context还未关闭时,Done()返回nil。
+需要注意的是,对于不支持取消的Context,该方法可能会返回nil。例如, context.Backgroud()。
Any comments?
另外,我始终觉得Go语言只是个工具,对语言深层次的设计原理,我觉得只适用于少数发烧友。暂时没计划再深入研究。
Any comments?
没什么问题,感觉更精炼了些。
另外,我始终觉得Go语言只是个工具,对语言深层次的设计原理,我觉得只适用于少数发烧友。暂时没计划再深入研究。
可能因为个人习惯的缘故,使用工具之前更喜欢理解工具的基本概念和设计原理,工具用起来才能更顺手。 书很棒,对于语言深入理解很有帮助 👍
可能因为个人习惯的缘故,使用工具之前更喜欢理解工具的基本概念和设计原理,工具用起来才能更顺手
的是,了解了设计原理用起来更不容易出错。
问题描述 在介绍context的时候,对于
context.Done()
是这样描述的显然最后一句是不妥的,Done只可能会返回nil,参考下面原文。
如何找到这个错误
您认为应该如何?
原文
建议的修改
图片 如果有可能,尽量提供图片。
其他补充信息
很早之前发现了这么一本开源书籍,觉得很棒加了收藏夹,最近在造轮子的时候又想参考一些内容,结果点开404才愕然发现出了书。 白嫖失败所以第二天就在京东下单买了😂 个人觉得内存管理和GC部分是对我帮助最大的一块,尤其是堆内存分配机制这块,讲的很棒。 最近刚刚读过 The Journey of Go's Garbage Collector,对GC Pacer这块还不是很理解具体细节,不知道作者是否有兴趣讲解一二。
另外感觉本书可以增补的一些部分,struct padding(memory alignment/wasted byte),memory model(happens before),atomic都是很有意思的内容。前者对于了解struct内存布局,reflect offset等hack操作都很有帮助,后者可以加深对于同步机制的理解,或是帮助使用一些基于指令级别的“无锁”操作。