golang中超时处理

不想你离开。 提交于 2019-12-10 23:36:25
package main

import (
	"fmt"
	"time"
)

func main() {
	ch1 := make(chan int)
	quit := make(chan bool)

	go func() {
		for{
			select {
			case <-ch1:
				fmt.Printf("读取到数据\n")
				break
			case <-time.After(3*time.Second):
				fmt.Printf("超时拉\n")
				quit<-true
				goto lable
			}
			fmt.Printf("=============\n")
		}
		lable:
	}()


	for i:=0;i<2;i++{
		ch1<-i
		time.Sleep(2*time.Second)
	}

	<-quit
	fmt.Printf("完毕")

}

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!