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

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

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

dotcoo   2021-03-22 我要评论
想了解golang判断chan channel是否关闭的方法的相关内容吗,dotcoo在本文为您仔细讲解golang判断chan channel是否关闭的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点: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语言程序设计有所帮助。

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们