コンテンツへスキップ
uencoder

Channel

チャネルとは、コルーチンやスレッド間の通信と同期のための型安全なメッセージキューであり、CSP 並行モデルを実装する。

目的

共有メモリではなくメッセージパッシングによって並行通信を実現し、競合を避ける。

メカニズム

送信側はメッセージをチャネルに入れ、受信側はそれを取り出す。チャネルにはバッファ付き(非同期)とバッファなし(同期)がある。Go のチャネルは第一級オブジェクトである。select は複数のチャネルを多重化し、チャネルのクローズは完了をブロードキャストする。

ユースケース

  • 並行プロセス間の通信
  • Go プログラミング
  • CSP モデル

関連用語

References