有没有哪里能通俗易懂地讲明白 Go 的并发?
什么 channel mutex 看的脑袋都蒙了,谁说 go 并发容易了
什么 channel mutex 看的脑袋都蒙了,谁说 go 并发容易了
各平台的汇编以及栈幁结构(不然你真不知道协程调度是如何完成上下文切换的 以及如何实现动态栈伸缩)
操作系统信号机制 (不然你真的不知道如何实现抢断式调度)
monitor 锁 (不然你真的不知道多线程如何通信 如何同步)
调度算法 (不然你真的不知道如何调度)
建议还是老老实实先读 CSAPP 现代操作系统原理 这两本书
还有 Linux 常见的 IO 模型 以及多路 IO 复用技术
打好了自然就明白了 ,能写的 go 的人 牛逼之处不是他用 go 语言编程有厉害,而在于能写 go 的这个人对计算机体系结构有多深刻的认识..
https://www.nosuchfield.com/2019/01/09/Multiplex-and-non-blocking-and-threading-and-coroutine/
我当时对 go 的并发感兴趣,所以入的坑,看了一个多月的并发、调度器相关的内容。中文的 go 调度器相关的资料挺多的,但都是鹦鹉学舌,翻来覆去就是 GMP 这点东西,没几个深入的。幸好最后找到了欧神的书,虽然当时我看的时候还有些小瑕疵,但看的特别顺畅,调度器部分从头到尾的逻辑特别顺,他博客里说这叫线性写作。
如果你对这方面感兴趣,我的建议就是先看看 RobPike 的演讲,听听他们设计 Go 语言的时候是如何思考并发的。然后就跟着书看下去就行了。