golang判断chan channel是否关闭的方法
本文实例讲述了golang判断chanchannel是否关闭的方法。分享给大家供大家参考,具体如下:
群里有朋友问,怎么判断chan是否关闭,因为close的channel不会阻塞,并返回类型的nil值,会导致死循环.在这里写个例子记录一下,并且分享给大家
如果不判断chan是否关闭
Notice:以下代码会产生死循环
packagemain
import(
"fmt"
)
funcmain(){
c:=make(chanint,10)
c<-1
c<-2
c<-3
close(c)
for{
fmt.Println(<-c)
}
}
判断短chan是否关闭
packagemain
import(
"fmt"
)
funcmain(){
c:=make(chanint,10)
c<-1
c<-2
c<-3
close(c)
for{
i,isClose:=<-c
if!isClose{
fmt.Println("channelclosed!")
break
}
fmt.Println(i)
}
}
希望本文所述对大家Go语言程序设计有所帮助。
热门推荐
4 家长会简短祝福语
10 拜年同事祝福语大全简短
11 七十年祝福语简短
12 回复姐姐生日祝福语简短
13 中考祝福语 简短50字
14 女儿要生了祝福语简短
15 二零二一年祝福语简短
16 狗年祝福语简短的英语
17 经典简短的祝酒祝福语
18 中秋送礼的祝福语简短