请教一个goroutine报错问题?

lane3000 · · 1119 次点击
但是每个筛子的写入chout都是在同一个goroutine中,而每个goroutine中的select 保证了要么执行 case v := <-chin:,要么执行case <-chexit:然后close(chout),下一个筛子都是读chout的操作,是不影响才对
#2
更多评论
chout无缓冲区,可能会出现 chout <- v 先于v := <-chin ,即写先于读情况 chout := make(chan int,100)
#1
你上个筛子的chout作为下个筛子的chin,就会出现上个筛子协程中 chout <- v 执行先于下个筛子协程中v := <-chin操作,和close无关
#3