当前位置: 首页 > 工具软件 > goworker > 使用案例 >

go waitgroup 协程管理

云鸿达
2023-12-01

2023-02-15

Add(delta int) :添加任务数
Wait():阻塞等待所有任务的完成
Done():完成任务


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

func worker(wg *sync.WaitGroup) {
	doSomething()
    wg.Done() // 2.1、完成任务
}

func main() {
    var wg sync.WaitGroup
    wg.Add(5) // 1、添加 5 个任务
    for i := 1; i <= 5; i++ {
        go worker(&wg) // 2、每个任务并发执行
    }
    wg.Wait() // 3、阻塞等待所有任务完成
}

 类似资料: