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

Golang中channel使用的一些小技巧

热门标签:百度地图标注搜索关键词 电梯外呼访客系统 兓㑿 腾讯外呼系统价格 电销机器人可以补救房产中介吗 成都呼叫中心外呼系统平台 最短的地图标注 谷歌便利店地图标注 浙江人工智能外呼管理系统

关闭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使用的一些小技巧》,本文关键词  Golang,中,channel,使,用的,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《Golang中channel使用的一些小技巧》相关的同类信息!
  • 本页收集关于Golang中channel使用的一些小技巧的相关信息资讯供网民参考!
  • 推荐文章