golang sync WaitGroup(计时器)替代sleep使用
package main
import (
"fmt"
"sync"
)
/*
开启携程之前使用sleep来等待携程完成再执行主函数
现在加入sync WaitGroup 来控制携程完成之后再执行主函数
函数有 Add done wait这3个函数来代替之前的sleep
*/
//WaitGroup
func main() {
fmt.Println(" start... ")
//循环5个携程
//加入 WaitGroup 替代sleep
var wg sync.WaitGroup
for i := 1; i <= 5; i++ {
//添加一个携程
wg.Add(1)
go func(num int) {
//方式二消费一个携程 如果忘记done 提前使用defer
defer wg.Done()
fmt.Printf("hello gorounter= %v \n", num)
//需要注意在执行完之后添加消费
// wg.Done()
}(i)
}
//最后关闭
wg.Wait()
// time.Sleep(time.Second)
}
浙公网安备 33010602011771号