0
点赞
收藏
分享

微信扫一扫

go 协程之WaitGroup超时控制

年迈的代码机器 2022-07-27 阅读 76
编程语言

package main

import (
"fmt"
"sync"
"time"
)

// 调用示例
func main() {
var w = sync.WaitGroup{}
var ch = make(chan bool)
w.Add(2)
go func() {
time.Sleep(time.Second * 2)
fmt.Println("我2秒")
w.Done()
}()
go func() {
time.Sleep(time.Second * 6)
fmt.Println("我6秒")
w.Done()
}()
go func() {
w.Wait()
ch <- false
}()

select {
case <-time.After(time.Second * 7):
fmt.Println("我超时了")
case <-ch:
fmt.Println("我结束了")
}
}

  



举报

相关推荐

0 条评论