同步等待组WaitGroup

    xiaoxiao2022-07-02  112

    WaitGroup:同步等待组。ps:值类型,传递时需要指针

                     内置的计数器:要执行的goroutine的数量

                     Add(3):设置3个要执行的goroutine

                     Done():将内置的计数器数量减一。等同于Add(-1)

                     Wait():等待。导致执行wait的goroutine进入阻塞状态。同步等待组中的计数器的值为0解除阻塞。

    例:

    package main import ( "fmt" "sync" ) var wg sync.WaitGroup func main() { wg.Add(2) go print1() go print2() wg.Wait() } func print1() { for i:=1;i<=100;i++{ fmt.Println("-----goroutine1",i) } wg.Done() } func print2() { for j:=1;j<=100;j++{ fmt.Println("goroutine2",j) } wg.Done() }

     

    最新回复(0)