培训首页  >  web前端新闻  >  兄弟连区块链培训分享Go语言并发超时处理

兄弟连区块链培训分享Go语言并发超时处理

[2018-08-29 16:00:41] 浏览量:53 来源:

北京兄弟连IT

  2018年第一季度,区块链相关人才的招聘需求已达到2017年同期的9.7倍,发布区块链相关岗位的公司数量同比增长4.6倍。

 

  兄弟连教育Go全栈与区块链培训课程是由清华、微软和谷歌名师历时半年时间研发出的独一无二的体系化课程。

 

golang并没有在语言层次上提供超时操作,但可以通过一些小技巧实现超时。

原理:

并发一个函数,等待1s后向timeout写入数据,在select中如果1s之内有数据向其他channel写入则会顺利执行,如果没有,这是timeout写入了数据,则我们知道超时了。

package main

import "fmt"

import "time"

 

func main() {

ch := make(chan int, 1)

timeout := make(chan bool, 1)

 

// 并发执行一个函数,等待1s后向timeout写入true

go func() {

time.Sleep(1000)

timeout <- true

}()

 

 

// 这里会等待chtimeout读出数据

// 因为一直没有向ch写入数据

// 1s后向timeout写入了数据

// 所以执行了timeoutcase

// 利用这个技巧可以实现超时操作

select {

case <- ch :

fmt.Println("read from ch")

case <- timeout :

fmt.Println("time out...")

}

}

文中图片素材来源网络,如有侵权请联系删除
  • 软件开发
  • 软件测试
  • 数据库
  • Web前端
  • 大数据
  • 人工智能
  • 零基础
  • 有HTML基础
  • 有PHP基础
  • 有C语言基础
  • 有JAVA基础
  • 其他计算机语言基础
  • 周末班
  • 全日制白班
  • 随到随学

网上报名

热门信息