题目序号:170
题目来源:哔哩哔哩
答案1:(小小)
问题1:
关闭已经关闭的 Channel 会发生 panic。
问题2:
无缓冲的与有缓冲 channel 有着重大差别,那就是一个是同步的 一个是非同步的。
比如:
c1:=make(chan int) //无缓冲
c2:=make(chan int,1) //有缓冲
c1<-1
无缓冲: 不仅仅是向 c1 通道放 1,而是一直要等有别的携程 <-c1 接手了这个参数,那么 c1<-1 才会继续下去,要不然就一直阻塞着。
有缓冲: c2<-1 则不会阻塞,因为缓冲大小是 1 (其实是缓冲大小为 0 ),只有当放第二个值的时候,第一个还没被人拿走,这时候才会阻塞。
本文来自投稿,不代表本站立场,如若转载,请注明出处: