您好,欢迎来到保捱科技网。
搜索
您的当前位置:首页GO语言channel的读写超时处理

GO语言channel的读写超时处理

来源:保捱科技网

百度一堆都说的是读超时的示例,,某些场合下需要写超时。这里给出一个写超时的示例。能用代码的就不废话了:

package main

import (
	"fmt"
	"time"
)

func main() {
		work := make(chan bool,1)
		// work <- false
		timeout := make(chan bool, 1)
		go func() {
			time.Sleep(time.Second)
			timeout <- true
		}()
		for {
			select {
			case <-timeout:
				fmt.Println("timeout.")
				return
			case work <- true:
				fmt.Println("send...")
			}
		}
}

 保存文件运行go run file.go输出

send...
timeout.

去掉  // work <- false的注释去掉,再次运行输出:

timeout.

case work <- true 表示如果写入成功就执行fmt.Println("send...")。

转载于:https://my.oschina.net/pokdars/blog/15914

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baoaiwan.cn 版权所有 赣ICP备2024042794号-3

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务