关于chan的一点疑惑,望大家解答,谢谢!

love00wanggang · · 2156 次点击
这属于 MPSC(多生产者单消费者)。既然只能在写chan的一方关闭,但要保证只能由一个goroutine关闭这个chan,而且chan关闭后,其余goroutine不能写入。简单点,可以加入一个chan的状态监控,当然这个状态应该是 原子的,因为有多个goroutine来写chan。
#6
更多评论
菜鸟来尝试回答。。 1 我的理解是 close 是用来告知不会再对chan输入数据,而不是对资源的释放,所以不进行close应该没问题 2 不知道楼主是在什么情境下会突然关闭chan,我的经验是确保最后一个写入才关闭chan
#1
不要在读chan的这一方关闭,应该由负责写chan的一方来关闭。v, ok := <- ch 可以判断ch是否关闭
#2