![image.png](https://static.studygolang.com/180509/0c77395e63e1e1a5304d6794b72cca81)
//------------------------------------------------------------------------------------------------------
![image.png](https://static.studygolang.com/180509/58e12c5373a0d89a18d84b74b11cb232)
这两段代码,为什么前一段代码里面的方法先在协程写入数据,再在主线程for循环读取数据
然后第二段代码确是先协程读取再主线程写入~~~
我是按照代码顺序看的 新手求指教
其实这里有很详细的中文教程,可以看看 https://cloud.tencent.com/developer/doc/1101。希望对你日常的学习有帮助
#3
更多评论
针对无缓冲的chan,写入数据会阻塞当前协程,直到有其他协程进行读取;读取操作也是一样会阻塞当前协程,直到有其他协程写入数据。
chan的操作从逻辑上肯定是先写入才能读取。
协程执行本身是无固定顺序的,在非并行状态下,当前协程必须让出时间片(阻塞)才能执行其他协程。多核CPU可以使用runtime.GOMAXPROCS设置并行执行的数量。
#1