1. 首页
  2. 主题
  3. Go语言

求教,GO超时时如何停止GO进程

admin87 · · 3028 次点击
下面这个代码发现一个问题,当打印超时后,'fmt.Println("haha")' 还是会出错,如何才能做到超时时结束GO 不在输出HAHA func handleSendaa(){ //生成数据包 chErr:=make(chan error) ticks:=time.Tick(time.Second*1) go func(){ <-ticks fmt.Println("haha") chErr <- nil close(chErr) }() select { case <-chErr: fmt.Println("end") case <-time.After(time.Millisecond*500): fmt.Println("TimeOut") } }
windy_
君子知命不惧,日日自省
os.Exit(1)
#1
更多评论
os.Exit(1) 退出的是整个程序吧,我只想退出一个GO
#2
这种同步如果要求不严格的话,直接用一个两个goroutine都可以访问到的变量记录是否超时
#3

用户登录

没有账号?注册

今日阅读排行

    加载中

一周阅读排行

    加载中