golang定时器和超时的使用
2017-08-17 11:04
441 查看
直接代码
func main() { var a chan string a =make(chan string) go sendDataTo(a) go timing() getAchan(10*time.Second,a) } func sendDataTo(a chan string) { for { a <- "我是a通道的数据" time.Sleep(1e9 *3) } } //在一定时间内接收不到a的数据则超时 func getAchan(timeout time.Duration, a chan string) { var after <-chan time.Time loop: after = time.After(timeout) for{ fmt.Println("等待a中的数据,10秒后没有数据则超时") select { case x :=<- a: fmt.Println(x) goto loop case <-after: fmt.Println("timeout.") return } } } func timing() { //定时器,10秒钟执行一次 ticker := time.NewTicker(10 * time.Second) for { time := <-ticker.C fmt.Println("定时器====>",time.String()) } }
相关文章推荐
- golang基础-chan的select操作、定时器操作、超时控制、goroutine中使用recover
- golang基础-chan的select操作、定时器操作、超时控制、goroutine中使用recover
- golang timer 定时器的使用
- Golang中使用heap编写一个简单高效的定时器模块
- [golang]time.After 在select中使用的正确姿势(解决超时逻辑未生效bug)
- golang 使用os/exec配合context实现的超时机制
- 文件批量上传的工具,要实现暂停继续、断点续传等功能(使用QtNetwork和QHttpMultiPart,和定时器检查超时)
- GOLANG使用Context实现传值、超时和取消
- HttpClient在使用中有两个超时时间 区别(转)
- Golang使用amqp发送消息
- 使用Linux的Shell脚本定时处理MySQL超时
- 看了别人的定时器注解,记录下来以便后期使用
- golang中goconfig包使用解析
- 使用vim-go插件进行golang开发
- iOS中定时器NSTimer的使用
- 【分享iOS开发知识】iOS中定时器NSTimer的使用
- timer定时器的使用
- Golang 使用gomail包发送邮件
- Golang1.7动态库的使用,C和Golang的动态库以及使用
- 如何使用定时器settimeout、setInterval执行能传递参数的函数