goroutine协程相关笔记 - Go语言中文社区

goroutine协程相关笔记


go语言的协程和线程的区别

线程受CPU控制,会随机切换线程的执行顺序

协程一定是先执行完一个协程再执行第二个,除非协程一主动交出执行权

runtime.Gosched()

或者协程一阻塞了


协程和主线程直接读写没有严格的先后顺序,只要有写有读就不会导致阻塞

如图,ch的缓冲为5个,但只写入三个数据,缓冲池没塞满,不会导致阻塞,所以test方法的读取没有执行,然后主线程退出,程序结束

让主线程等一会就能读取出来

如果缓冲设置3,写入四个数据,缓冲满了以后会导致阻塞,阻塞后调用test方法去读取数据,读取成功



暂时就这么理解了,待以后完善!!如果有大神看到愿意更详细的解答感激不尽


版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/dhd040805/article/details/80257698
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-10-27 20:33:39
  • 阅读 ( 1278 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢