Channel
チャネルとは、コルーチンやスレッド間の通信と同期のための型安全なメッセージキューであり、CSP 並行モデルを実装する。
目的
共有メモリではなくメッセージパッシングによって並行通信を実現し、競合を避ける。
メカニズム
送信側はメッセージをチャネルに入れ、受信側はそれを取り出す。チャネルにはバッファ付き(非同期)とバッファなし(同期)がある。Go のチャネルは第一級オブジェクトである。select は複数のチャネルを多重化し、チャネルのクローズは完了をブロードキャストする。
ユースケース
- 並行プロセス間の通信
- Go プログラミング
- CSP モデル