見直してから公開しようと思ってたんですが、23日目の枠が偶然にも空いていたのでもう公開してしまいます😈これで4枠目です。ごめんなさい、そしてありがとう。久々に結構長めなので余裕のある方だけどうぞ。並行処理を扱うためのコルーチンです。普通のコルーチンとは違って処理の割り込みや再開を開発者がプログラム上から制御することはできません。複数のCPUコアを扱うことができます。呼ばれる両端から取り出し可能なキューを持ちます。以下のように働きます。新たにゴルーチンが発行されると自身のワークデックの最後尾に追加するスレッドがアイドル状態のとき、他のワークデックの前側からゴルーチンを半分奪って自身のデックに追加する処理がゴルーチンの合流地点に達したら自身のワークデックの最後尾からゴルーチンを取り出して実行する最後尾に追加したタスクは親ゴルーチンの合流を完了させるために必要になることが多く、早く合流させることはプログラムの高速化につながるもし自身のワークデックが空なら、アイドル状態になるか他のワークデックの前側からゴルーチンを半分奪って自身のデックに追加するこれはワークスティーリングと呼ばれる仕組みです。ゴルーチン間で(チャネルを介して)通信を行うためのアロー演算子を構文として持ちます。文の後に関数呼び出しを書くとゴルーチンが作られ、関数はそこで実行されます。それから派生するようにほかのゴルーチンが作られます。メインゴルーチン(プロセス自身)が終了したら、生成されたゴルーチンも終了します。以下は親子(2対)のゴルーチンに対して指定した秒数スリープしたあとにプリントするプログラムです。parentグローバルスコープも(外側の)関数スコープも、生成されたゴルーチンからは読み書き可能なのです。文の中でゴルーチンを発行するときは注意が必要です。以下のプログラムはいずれもループ内でゴルーチンを発行しています。参照してしまうため、このようなことが起こります。いえタイミングの問題でもあるので状況によっては同じ結果にはならないかもしれません。このチャネルを介して行うことが強く推奨されています。呼ばれる並行処理を表現するためのパラダイムがあります。独立したプロセス間でデータのやり取りをするための記述表現を提供します。