好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

golang判断chan channel是否关闭的方法

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

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

如果不判断chan是否关闭

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

复制代码 代码如下:

package main
import (
    "fmt"
)
func main() {
    c := make(chan int, 10)
    c     c     c     close(c)
    for {
        fmt.Println(     }
}

判断短chan是否关闭

复制代码 代码如下:

package main
import (
    "fmt"
)
func main() {
    c := make(chan int, 10)
    c     c     c     close(c)
    for {
        i, isClose :=         if !isClose {
            fmt.Println("channel closed!")
            break
        }
        fmt.Println(i)
    }
}

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

查看更多关于golang判断chan channel是否关闭的方法的详细内容...

  阅读:73次