中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

如何使用Go WaitGroup處理并發任務

小云
101
2023-10-09 08:12:00
欄目: 編程語言

在 Go 中使用 sync.WaitGroup 來處理并發任務,可以確保在所有任務完成之前等待主程序的執行。下面是一個簡單的例子:

package main
import (
"fmt"
"sync"
)
func main() {
var wg sync.WaitGroup
numTasks := 10
// 增加任務數
wg.Add(numTasks)
for i := 0; i < numTasks; i++ {
go func(taskNum int) {
defer wg.Done() // 每個任務執行完成后減少任務數
fmt.Printf("Task %d is running\n", taskNum)
// 執行具體任務
}(i)
}
// 等待所有任務完成
wg.Wait()
fmt.Println("All tasks are completed")
}

在上面的例子中,我們首先創建了一個 WaitGroup 對象 wg,然后使用 Add() 方法增加了需要等待的任務的數量。在每個任務的 goroutine 中,我們使用 defer wg.Done() 來在任務執行完畢后減少任務數。最后,我們使用 Wait() 方法來等待所有任務完成,然后輸出相應的信息。

對于每個任務,你可以在 go func() 中執行具體的任務邏輯,例如進行數據處理、調用 API,或者執行其他操作。每個任務完成時,調用 wg.Done() 來減少任務數。

使用 sync.WaitGroup 的好處是可以確保在所有任務完成之前主程序不會退出。

0
宾川县| 北辰区| 四子王旗| 双鸭山市| 兴国县| 平邑县| 密云县| 洛川县| 高青县| 马尔康县| 四平市| 江津市| 旬邑县| 开原市| 会昌县| 信丰县| 鄱阳县| 韩城市| 阳曲县| 龙江县| 铜陵市| 洪雅县| 全南县| 溧阳市| 勐海县| 中江县| 兖州市| 盘锦市| 竹北市| 乐昌市| 巴彦县| 赫章县| 定兴县| 石阡县| 陵水| 全州县| 新民市| 五华县| 交口县| 永安市| 沾益县|