主页 > 知识库 > Golang中channel使用的一些小技巧

Golang中channel使用的一些小技巧

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

关闭2次

复制代码 代码如下:

ch := make(chan bool)
close(ch)
close(ch)  // 这样会panic的,channel不能close两次

读取的时候channel提前关闭了
复制代码 代码如下:

ch := make(chan string)
close(ch)
i := - ch // 不会panic, i读取到的值是空 "",  如果channel是bool的,那么读取到的是false

向已经关闭的channel写数据
复制代码 代码如下:

ch := make(chan string)
close(ch)
ch - "good" // 会panic的

判断channel是否close
复制代码 代码如下:

i, ok := - ch
if ok {
    println(i)
} else {
    println("channel closed")
}

for循环读取channel
复制代码 代码如下:

for i := range ch { // ch关闭时,for循环会自动结束
    println(i)
}

防止读取超时
复制代码 代码如下:

select {
    case - time.After(time.Second*2):
        println("read channel timeout")
    case i := - ch:
        println(i)
}

防止写入超时
复制代码 代码如下:

// 其实和读取超时很像
select {
    case - time.After(time.Second *2):
        println("write channel timeout")
    case ch - "hello":
        println("write ok")
}

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

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

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

    • 400-1100-266