kotlinのメモです。
5405 views
生産者 (Publisher, Flowable)
データを生成し、購読者に通知する役割を持ちます。Flowableはストリーム対応のデータプロデューサーで、バックプレッシャー(消費者が処理できるデータ量を制御する仕組み)に対応しています。
購読者 (Subscriber, subscribe)
Subscriberは生産者からのデータを受け取り、処理を行います。subscribeメソッドを使って、購読を開始します。
公式ライブラリのダウンロードリンクはこちら:
RxKotlin on GitHub
| プロトコル | 説明 |
|---|---|
onSubscribe |
購読の準備ができたことを通知します。 |
onNext |
データが届いたことを通知します。 |
onError |
エラーが発生した場合に通知します。 |
onComplete |
データの配信が完了したことを通知します。 |
| インターフェース | 説明 |
|---|---|
Publisher |
データを生産し、購読者に通知する役割を持つインターフェース。 |
Subscriber |
データを受け取り処理を行うインターフェース。 |
Subscription |
データのリクエストや購読解除を管理します。 |
Processor |
PublisherとSubscriberの両方の性質を持ち、データの中継・変換が可能なインターフェース。 |
Subscriptionの処理はSubscriberの外部からは呼ばれない想定で実装されていますが、外部から購読解除が必要な場合、非同期で呼び出せる設計が求められます。
ProcessorはReactive Streams専用のインターフェースです。
| 生産者 | 消費者 | |
|---|---|---|
| Streams対応あり | Flowable |
Subscriber |
| Streams対応なし | Observable |
Observer |
Streams非対応のObservableはバックプレッシャーの機能を持たず、データのリクエストは行いません。代わりに、Disposableという購読解除のインターフェースが用意されています。
| メソッド | 説明 |
|---|---|
dispose() |
購読を解除します。 |
isDisposed() |
購読が解除されている場合はtrue、解除されていない場合はfalseを返します。 |
RxJavaのオペレーターは、生産者が通知したデータを消費者に届けるまでの間にデータを操作するメソッドです。
例えば、不要なデータのフィルタリングや、データを使いやすい形式に変換する際に使用されます。メソッドチェーンとしてつなげることができ、柔軟なデータ処理が可能です。
SchedulerRxJavaではデータを通知する処理と、データを受け取る処理を別スレッドで分けることができます。
Schedulerを使用することで、スレッド管理を簡単に行え、直接スレッドを管理する必要がなくなります。
CompletableCompletableはデータの通知はせず、完了通知かエラー通知のみを行うクラスです。データベースのレコード挿入や更新など、成功・失敗の結果だけを知りたい処理に適しています。
SingleSingleはemitterのonSuccessが一度だけ呼ばれると、ObserverまたはSubscriberのonSuccessが呼ばれます。
複数回onSuccessを呼んでも、一度しか発火しません。また、onCompleteメソッドは存在しないため、onSuccessで結果を通知する必要があります。
fromCallablefromCallableメソッドを使うと、Callableからデータを取得し、それを通知します。例えば、システム時間を取得するCallableを使用して、その結果をSingleとして処理することができます。
Reactive StreamsやRxJavaを使うことで、非同期データ処理の管理が容易になります。特に、バックプレッシャー対応のFlowableや、簡単な完了通知を行うCompletable、結果を1度だけ通知するSingleなどのさまざまなクラスを活用することで、効率的な非同期処理を実現できます。
Page 17 of 36.
すぺぺぺ
本サイトの作成者。
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
ChatGPTで自動プログラム作成に取り組み中。
https://www.osumoi-stdio.com/novel/