Goスケジューラの仕事は、1つまたは複数のプロセッサ上で実行する複数のワーカOSスレッドに、実行可能なGoルーチンを配分することです。マルチスレッドのコンピュータ処理では、スケジューリングに2つの考え方が登場してきています。 * ワークシェアリング: あるプロセッサが新しいスレッドを生成したとき、idle状態か十分に活用されていないプロセッサが利用してくれることに期待して、生成したスレッドのいくつかを他のプロセッサに移行させます。 * ワークスティーリング: 十分に活用されていないプロセッサが他のプロセッサのスレッドを積極的に探し、そのいくつかを「スティール」ます。 スレッド移行の発生頻度は、ワークスティーリングではワークシェアリングよりも少なくなります。実行すべきワークがどのプロセッサにもあるときは、移行されるスレッドはありません。そして、あるプロセッサがidle状態になれば、直ちに移行