Кажется, что на каждой итерации Java для последних нескольких основных выпусков последовательно существуют новые способы управления параллельными задачами.
В Java 9 у нас есть Flow API, который напоминает Flowable API RxJava, но с Java 9 имеет гораздо более простой набор классов и интерфейсов.
Java 9
Имеет Flow.Publisher
, Flow.Subscriber
, Flow.Processor
, Flow.Subscription
и SubmissionPublisher
, и что об этом.
RxJava
Имеет целые пакеты Flow API-подобных классов, то есть io.reactivex.flowables
, io.reactivex.subscribers
, io.reactivex.processors
, io.reactivex.observers
и io.reactivex.observables
, которые, похоже, делают что-то подобное.
В чем основные отличия между этими двумя библиотеками? Почему кто-то использует библиотеку Java 9 Flow в гораздо более разнообразной библиотеке RxJava или наоборот?