<KotlinLearn/>
コルーチン レッスン6

チャネル

コルーチン間でデータをやり取りするChannelの種類と使い方を学びます。

Channelとは

Channelはコルーチン間でデータをやり取りするためのパイプです。 GoのチャネルやCSPに似た概念で、プロデューサー・コンシューマーパターンを実装できます。

  • send()でデータを送信し、receive()で受信する
  • close()でチャネルを閉じる
  • for-inループでチャネルを消費できる
  • Rendezvouz・Buffered・Unlimited・Conflatedなど種類がある

基本的なChannelの使い方

send()とreceive()でコルーチン間通信します。

Kotlinエディタ

produceビルダー

produceはReceiveChannelを返すコルーチンビルダーです。

Kotlinエディタ

バッファ付きChannel

容量を指定するとバッファ付きChannelになり、送信側が先に進めます。

Kotlinエディタ