美文网首页Golang语言社区
读一个已关闭的channel

读一个已关闭的channel

作者: zengfan | 来源:发表于2017-07-23 19:17 被阅读0次

有两种读取channel的方式
1、range

for x:= range ch{
      ...
}

使用range,如果channel被外部关闭,for会退出,即range可以识别出channel被关闭

2、<-ch

for{
  i := <-ch
  ...
}

这种情况下, channel被外部关闭,会不断读出0

另外:

var c chan int
<-c         //blocks forever
c <- x      //blocks forever
close(c)    // panic: close of nil channel

读写nil channel 会永久阻塞
关闭一个nil channel 会导致程序panic

相关文章

网友评论

    本文标题:读一个已关闭的channel

    本文链接:https://www.haomeiwen.com/subject/pcmmkxtx.html