コルーチン レッスン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エディタ