5
彼の話では、Rob Pikeは、ゴールールはスレッドと似ていますが、はるかに安価だと言います。なぜ誰かが説明できますか?なぜgoroutinesは他の言語のスレッドよりも安価ですか?
彼の話では、Rob Pikeは、ゴールールはスレッドと似ていますが、はるかに安価だと言います。なぜ誰かが説明できますか?なぜgoroutinesは他の言語のスレッドよりも安価ですか?
「How goroutines work」を参照してください。
プラス、「Go’s march to low-latency GC」で述べたように、GCは、ランタイムがゴルーチンの管理を担当しているとき、実装が簡単である:
ゴー1.5での同時GCの導入以来、ランタイムスタックが最後にスキャンされてからゴルーチンが実行されたかどうかを追跡しています。マーク終了段階では、各ゴルーチンが最近実行されたかどうかを確認し、いくつかの再スキャンを行います。
Go 1.7では、実行時にこのようなゴルーチンの別の短いリストが保持されます。これにより、ユーザコードが一時停止している間にゴルーチンのリスト全体を調べる必要がなくなり、カーネルのNUMA関連メモリ移行コードをトリガできるメモリアクセス数が大幅に削減されます。