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 | 返回顶部