45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:怎么样通过golang判断chan channel是否关闭?

怎么样通过golang判断chan channel是否关闭?

2016-08-28 11:07:48 来源:www.45fan.com 【

怎么样通过golang判断chan channel是否关闭?

本文实例讲述了golang判断chan channel是否关闭的方法。分享给大家供大家参考,具体如下:

群里有朋友问,怎么判断chan是否关闭,因为close的channel不会阻塞,并返回类型的nil值,会导致死循环.在这里写个例子记录一下,并且分享给大家

如果不判断chan是否关闭

Notice: 以下代码会产生死循环


复制代码 代码如下:
package main
import (
"fmt"
)
func main() {
c := make(chan int, 10)
c <- 1
c <- 2
c <- 3
close(c)
for {
fmt.Println(<-c)
}
}

 

判断短chan是否关闭


复制代码 代码如下:
package main
import (
"fmt"
)
func main() {
c := make(chan int, 10)
c <- 1
c <- 2
c <- 3
close(c)
for {
i, isClose := <-c
if !isClose {
fmt.Println("channel closed!")
break
}
fmt.Println(i)
}
}

 

希望本文所述对大家Go语言程序设计有所帮助。


本文地址:http://www.45fan.com/a/question/68781.html
Tags: Golang 判断 chan
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部