リアクティブプログラミング2日目
ひとまずRxJavaのリファレンスを読んでみる
いつもの
package rxjava.examples; import io.reactivex.rxjava3.core.*; public class HelloWorld { public static void main(String[] args) { Flowable.just("Hello world").subscribe(System.out::println); } }
データを突っ込んで渡して出力、以上! Rxをコードに組み込むのが目的のコードなやつ
RxJavaのおおざっぱな流れとしてはこうらしい
- Observableからデータが流れてくる(=ストリーム)
- Operator(=map()やfilter())を使うとストリームなデータをいじれる(=flip)
- subscribe()で処理を開始
onNextとか色々あった気がするけどひとまず後ででいいや
んで、 Flowable.just って何よ
Flowable : ストリームを作る(=Observable)
just : オブジェクトをOperatorに渡す
FlowableとObservableの何が違うんだ?
- io.reactivex.rxjava3.core.Flowable: 0..N flows, supporting Reactive-Streams and backpressure
- io.reactivex.rxjava3.core.Observable: 0..N flows, no backpressure
「Reactive-Streams and backpressure」とな
ストリームとして受け取ったデータが重すぎると上手く動かなくなるので、そのための制御フロー
処理が重くなるやつはこれ使っとけって感じなのかな
調べてみたらObservableによるデータ制御には限界があるらしい
backpressureによる管理は
「処理が1回終わる毎に、次のデータを1つもらう」
というのを確実に行うためのものみたい、ふむふむ
今日はここまで、昨日は遅かったので早く寝るぞ