コルーチン レッスン6
チャネル
コルーチン間でデータをやり取りするChannelの種類と使い方を学びます。
Channelとは
Channelはコルーチン間でデータをやり取りするためのパイプです。 GoのチャネルやCSPに似た概念で、プロデューサー・コンシューマーパターンを実装できます。
- send()でデータを送信し、receive()で受信する
- close()でチャネルを閉じる
- for-inループでチャネルを消費できる
- Rendezvouz・Buffered・Unlimited・Conflatedなど種類がある
基本的なChannelの使い方
send()とreceive()でコルーチン間通信します。
KotlinエディタTab: インデント / ⌘(Ctrl)+Enter: 実行
produceビルダー
produceはReceiveChannelを返すコルーチンビルダーです。
KotlinエディタTab: インデント / ⌘(Ctrl)+Enter: 実行
バッファ付きChannel
容量を指定するとバッファ付きChannelになり、送信側が先に進めます。
KotlinエディタTab: インデント / ⌘(Ctrl)+Enter: 実行