golang中channel的超时处理
2016-04-09 12:11 l4y 阅读(814) 评论(0) 编辑 收藏 举报并发中超时处理是必不可少的,golang没有提供直接的超时处理机制,但可以利用select机制来解决超时问题。
func timeoutFunc() { //首先,实现并执行一个匿名的超时等待函数 timeout := make(chan bool, 1) go func() { time.Sleep(1e9) //等待1秒钟 timeout <- true }() //然后,我们把timeout这个channel利用起来 select { case <- ch: //从ch中读到数据 case <- timeout: //一直没有从ch中读取到数据,但从timeout中读取到数据 } }
本文来自博客园,作者:l4y,转载请注明原文链接:https://www.cnblogs.com/xjshi/p/5371316.html