设为首页 加入收藏

TOP

GO语言之channel(三)
2017-09-30 13:52:51 】 浏览:5327
Tags:语言 channel
下运行,利用这种方法,可以实现channel的超时处理:

  原理如下:我们可以先定义一个channel,在一个方法中对这个channel进行写入操作,但是这个写入操作比较特殊,比如我们控制5s之后写入到这个channel中,这5s时间就是其他channel的超时时间,这样的话5s以后如果还有channel在执行,可以判断为超时,这是channel写入了内容,select检测到有内容就会执行这个case,然后程序就会顺利往下走了。实现如下:

 1 timeout := make(chan bool, 1)
 2 go func() {
 3     time.Sleep(5s) // 等待s秒钟
 4     timeout <- true
 5 }()
 6 
 7 select {
 8     case <-ch:
 9     // 从ch中读取到数据
10     case <-timeout:
11     // 没有从ch中读取到数据,但从timeout中读取到了数据
12 }

好了,今天就写这么多,写了一上午了,该吃饭了。

初学go语言,没有做过系统的项目,只是比较感兴趣,希望以后深入学习这门语言,文章中不对之处或者是理解上的偏差请大神在评论处指出来,大家共同学习。

注意:
1、本博客同步更新到我的个人网站:http://www.zhaoyafei.cn
2、本文属原创内容,为了尊重他人劳动,转载请注明本文地址:
 
首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇2016年最新mac下vscode配置golang.. 下一篇golang中如何使用http,socket5代理

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目