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)

}

posted @ 2023-11-13 14:16  北京小小鸟  阅读(66)  评论(0)    收藏  举报