1 回答

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個(gè)贊
更改任務(wù)通道類型。
ch := make(chan Task, len(task))
這意味著在通道上傳遞的每個(gè)值都表示單個(gè)任務(wù)。
簡(jiǎn)化渠道迭代
for i := 0; i < MAX_WORKERS; i++ {
go func() {
defer wg.Done()
for t := range ch {
DoTask(t)
}
}()
}
wg.Done()現(xiàn)在將在工作線程退出時(shí)運(yùn)行。 將在通道關(guān)閉并消耗所有任務(wù)后停止。range ch
更改“Do”功能以匹配
func DoTask(t Task) {
關(guān)于如何選擇工作人員數(shù)量:
為函數(shù)運(yùn)行一些基準(zhǔn)測(cè)試,并嘗試更改(或?qū)⑵渥鳛閰?shù)傳遞)。最佳值將取決于任務(wù)以及運(yùn)行函數(shù)時(shí)的可用資源,這意味著今天機(jī)器上的最佳值可能不是其他任何機(jī)器上的最佳值,也不是明天機(jī)器上的最佳值?;鶞?zhǔn)測(cè)試應(yīng)該可以幫助您找到一個(gè)很好的近似范圍來(lái)放置值。FetchAllDataMAX_WORKERS
- 1 回答
- 0 關(guān)注
- 92 瀏覽
添加回答
舉報(bào)