kotlinのメモです。
3590 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のオペレーターは、生産者が通知したデータを消費者に届けるまでの間にデータを操作するメソッドです。
例えば、不要なデータのフィルタリングや、データを使いやすい形式に変換する際に使用されます。メソッドチェーンとしてつなげることができ、柔軟なデータ処理が可能です。
Scheduler
RxJavaではデータを通知する処理と、データを受け取る処理を別スレッドで分けることができます。
Schedulerを使用することで、スレッド管理を簡単に行え、直接スレッドを管理する必要がなくなります。
Completable
Completable
はデータの通知はせず、完了通知かエラー通知のみを行うクラスです。データベースのレコード挿入や更新など、成功・失敗の結果だけを知りたい処理に適しています。
Single
Single
はemitter
のonSuccess
が一度だけ呼ばれると、Observer
またはSubscriber
のonSuccess
が呼ばれます。
複数回onSuccess
を呼んでも、一度しか発火しません。また、onComplete
メソッドは存在しないため、onSuccess
で結果を通知する必要があります。
fromCallable
fromCallable
メソッドを使うと、Callable
からデータを取得し、それを通知します。例えば、システム時間を取得するCallable
を使用して、その結果をSingle
として処理することができます。
Reactive StreamsやRxJavaを使うことで、非同期データ処理の管理が容易になります。特に、バックプレッシャー対応のFlowable
や、簡単な完了通知を行うCompletable
、結果を1度だけ通知するSingle
などのさまざまなクラスを活用することで、効率的な非同期処理を実現できます。
Page 17 of 36.
すぺぺぺ
本サイトの作成者。
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
ChatGPTで自動プログラム作成に取り組み中。
https://www.osumoi-stdio.com/novel/