問題タブ [go-scheduler]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - time.Sleep があっても、このゴルーチンが実行されないのはなぜですか?
このコードを見てください:
最後にx
等しいのはなぜですか?0
Go のスケジューラーがtime.Sleep()
ゴルーチンを取得するために呼び出しを必要とすることは理解していますが、なぜそうしないのでしょうか?
ヒント: for ループ内にatime.Sleep()
または への呼び出しをruntime.Gosched()
しかし、なぜ?
更新:同じコードの次のバージョンを確認してください。
奇妙なことに、ゴルーチン内のコードが実行され、x
0 ではなくなりました。コンパイラはここで最適化を行いますか?