2 回答
TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊
Goroutines 同時(shí)運(yùn)行,因此它們也同時(shí)打印到標(biāo)準(zhǔn)輸出(即無(wú)序)。此外,fmt.Print API 是緩沖的,因此您的打印實(shí)際上不會(huì)在調(diào)用時(shí)立即打印。這也發(fā)生在其他語(yǔ)言中。
這就是為什么您無(wú)法從 stdout 中的消息中導(dǎo)出 goroutine 的真正并發(fā)執(zhí)行。
TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超7個(gè)贊
但是消息 6 和 13 如何在實(shí)際發(fā)送之前輸出它們的接收信息呢?
我們只知道fmt.Println("received job", j)was printed before fmt.Println("sent job", j)was printed,這在并發(fā)工作代碼中是合理的。
如果通道大小為 5,如何連續(xù)發(fā)送 7 條消息?
同樣,因?yàn)槲覀儾淮_切知道哪個(gè)語(yǔ)句首先打印出來(lái),所以這是可以預(yù)料的。隊(duì)列已經(jīng)可以減少,我們?nèi)栽诖蛴 ?/p>
- 2 回答
- 0 關(guān)注
- 172 瀏覽
添加回答
舉報(bào)
