29、超时处理
00 分钟
2022-8-26
超时对于一个需要连接外部资源,或者有耗时较长的操作的程序而言是很重要的。得益于通道和select,在Go中实现超时操作是简介而优雅的
 
 
 
 
 
 
在这个例子中,假如我们执行一个外部调用,并在2秒后使用通道c1返回他的执行结果。
 
 
 
这里是使用select实现一个超时操作。res := ← c1等待结果,←time.After等待尝试(1秒钟)以后发送的值。由于select默认处理第一个已准备好的接收操作,因此如果操作耗时超过了允许的1秒的话,将会执行超时case
 
如果我们允许一个长一点的超时时间:3秒,就可以成功的从c2接收到值,并且打印出来
 
 
 
 
 
 
 
 
 
运行这个程序,首先显示运行超时的操作,然后是成功接收的。
 
 

评论