主页 > 知识库 > golang判断chan channel是否关闭的方法

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

热门标签:铁路电话系统 地方门户网站 Linux服务器 AI电销 服务外包 网站排名优化 百度竞价排名 呼叫中心市场需求

本文实例讲述了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语言程序设计有所帮助。

您可能感兴趣的文章:
  • 基于golang channel实现的轻量级异步任务分发器示例代码
  • golang中for循环遍历channel时需要注意的问题详解
  • golang实现基于channel的通用连接池详解
  • Golang优雅关闭channel的方法示例
  • golang中单向channel的语法介绍
  • Golang中channel使用的一些小技巧
  • Golang中channel的原理解读(推荐)

标签:崇左 湖南 黄山 兰州 铜川 衡水 湘潭 仙桃

巨人网络通讯声明:本文标题《golang判断chan channel是否关闭的方法》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266