结论:
1. go语言无法即时准确地判断channel是否关闭
2. 从channel读取数据
2.1 第二个字段为true时,channel可能没关闭,也可能已经关闭,不能证明什么
2.2 第二个字段为false时,可以证明channel中已没有残留数据且已关闭
3. 若channel已关闭,那么从该channel中读取数据会直接返回,且是默认值,所以一定要判断第二个字段
实验如下图:
实验源码如下:
结论:
1. go语言无法即时准确地判断channel是否关闭
2. 从channel读取数据
2.1 第二个字段为true时,channel可能没关闭,也可能已经关闭,不能证明什么
2.2 第二个字段为false时,可以证明channel中已没有残留数据且已关闭
3. 若channel已关闭,那么从该channel中读取数据会直接返回,且是默认值,所以一定要判断第二个字段
实验如下图:
实验源码如下:
下一篇:记一种数据库水平扩展的技巧
go channel 理解
协程是并发编程的基础,而管道(channel)则是并发中协程之间沟通的桥梁,很多时候我们启动要相互协作。channel 方向 ...
channel是引用类型,使用的时候必须通过make进行初始化,make的channel打印结果是地址
举报文章
请选择举报类型
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M