在Tour of Go網站的go 1.5發行之前的版本中,有一段代碼看起來像這樣。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()影響執行力?
2 回答

喵喵時光機
TA貢獻1846條經驗 獲得超7個贊
合作計劃是罪魁禍首。如果不屈服,則另一個(例如“世界”)goroutine可能合法地在main終止之前/之時獲得零執行機會,根據規范,終止所有goroutine的時間即為- 整個過程。
- 2 回答
- 0 關注
- 225 瀏覽
添加回答
舉報
0/150
提交
取消