ReactiveX/RxJava
7 articles
前提知識
- ›リアクティブプログラミングの基本概念(Observable、subscribe、オペレーター)への理解
- ›Javaモジュールシステムの基礎知識(module-info.java)
RxJavaの内部構造:アーキテクチャの概要と877ファイルの歩き方
プロジェクト構造、public/internal APIの境界、5+2のコアリアクティブ型、命名規則、ビルド基盤を網羅するRxJavaコードベースの全体マップ。
サブスクライブの連鎖:RxJava のすべてのオペレーターが実際にどう動くか
ユーザーの呼び出しからプラグインフックを経て subscribeActual() に至るまでの subscribe フローを追いながら、FlowableMap を題材にオペレーターのデコレーターパターンを解剖します。
エンジンルームの深層:ドレインループ、Queue Fusion、ロックフリー並行処理
RxJava のパフォーマンスを支える WIP ドレインループパターン、QueueFuseable によるオペレーター融合プロトコル、ロックフリー SPSC キュー、ConditionalSubscriber による最適化を深く掘り下げます。
スケジューラの全貌:スレッドプール、仮想スレッド、時間制御
RxJava のスレッド抽象化を Scheduler/Worker 基底クラスから ComputationScheduler、CachedScheduler、DeferredExecutorScheduler(仮想スレッド)、TestScheduler まで徹底解説します。
バックプレッシャー:Flowable が高速なプロデューサーから低速なコンシューマーを守る仕組み
request(n) プロトコル、BackpressureHelper の CAS 演算、5 つの BackpressureStrategy オプション、prefetch/limit パターン、FlowableFlatMap のマルチソースリクエスト管理について解説します。
RxJava 4.x: Streamable、仮想スレッド、そしてリアクティブ Java の未来
非同期列挙を実現する Streamable<T>、命令型の仮想スレッドコードを書くための VirtualGenerator/VirtualEmitter、sealed 型・records の活用、そして java.util.concurrent.Flow への移行を解説します。
54,000行を正直に保つ:RxJavaのテストとバリデーションアーキテクチャ
TestSubscriber、TestScheduler、24のバリデーターメタテスト、Reactive Streams TCK準拠、JMHベンチマーク、そしてそれらをつなぐCIパイプラインを詳しく解説します。