在Tour of Go網(wǎng)站的go 1.5發(fā)行之前的版本中,有一段代碼看起來像這樣。package mainimport ( "fmt" "runtime")func say(s string) { for i := 0; i < 5; i++ { runtime.Gosched() fmt.Println(s) }}func main() { go say("world") say("hello")}輸出看起來像這樣:helloworldhelloworldhelloworldhelloworldhello令我困擾的是,runtime.Gosched()將其刪除后,該程序不再顯示“世界”。hellohellohellohellohello為什么會這樣?如何runtime.Gosched()影響執(zhí)行力?
2 回答

喵喵時光機(jī)
TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個贊
合作計(jì)劃是罪魁禍?zhǔn)?。如果不屈服,則另一個(例如“世界”)goroutine可能合法地在main終止之前/之時獲得零執(zhí)行機(jī)會,根據(jù)規(guī)范,終止所有g(shù)oroutine的時間即為- 整個過程。
- 2 回答
- 0 關(guān)注
- 226 瀏覽
添加回答
舉報(bào)
0/150
提交
取消