2 回答

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超2個(gè)贊
據(jù)我了解,您根本不需要 WaitGroup,您只需要重新排序genVals函數(shù)循環(huán)中的語句:
for i := 0; i < 10; i++ {
stream := make(chan interface{})
chanStream <- stream
stream <- i
close(stream)
}
https://go.dev/play/p/7D9OzrsvZyi

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超21個(gè)贊
有兩個(gè)主要問題。
第一期:
for i := 0; i < 10; i++ {
stream := make(chan interface{})
stream <- i
close(stream)
chanStream <- stream
}
創(chuàng)建后寫入無緩沖通道,沒有 goroutine 讀取。使用緩沖通道或其他 goroutine。
stream := make(chan interface{}, 1) // buffer size 1 to not block `stream <- i`
第二期:不
使用。 您可以在這兩種情況下使用。wg.Add(1)wg.Done()
defer
wg.Add(1)
defer wg.Done()
- 2 回答
- 0 關(guān)注
- 164 瀏覽
添加回答
舉報(bào)