标签:读取数据 写入 阻塞 管道 close GO 019 自学 崩溃
1、管道写满,会导致写阻塞。
2、缓冲区读完,会导致读阻塞。
3、管道没有使用make分配空间,管道默认空间是nil。
4、从nil的管道写入/读取数据,不会出错/崩溃,但是会阻塞。
5、从一个已经关闭close(channel)
了的管道读取数据时,返回0。不会崩溃。(和6对应去记)
6、向一个已经close的管道写数据,会崩溃。(和5对应去记)
7、关闭一个已经close的管道,程序会崩溃。(只能close一次)
8、close动作只可以在写管道中进行!因为在读的时候操作close动作,管道再写入不了数据,一旦写入,立刻崩溃。(根据第6点)
9、读写次数一定要对等,不然:
- 在多个子go程中,会发生内存泄漏。
- 在主go程中,会发生程序崩溃。即死锁(deadlock)
标签:读取数据,写入,阻塞,管道,close,GO,019,自学,崩溃 来源: https://www.cnblogs.com/cloucodeforfun/p/16671356.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。