Я создал проект maven в Intellij IDEA, я пытаюсь выполнить приведенный ниже простой код rxjava
Observable.just(1,2,3,4)
.observeOn(Schedulers.io())
.subscribe(new Consumer<Integer>() {
@Override
public void accept(Integer integer) throws Exception {
System.out.println(integer);
}
});
Я ожидаю, что результат 1 , 2 , 3 , 4
будет напечатан в потоке io
.Но когда я запускаю код, он ничего не печатает.Если я удаляю observeOn(Schedulers.io)
, то он печатается, как и ожидалось, в главном потоке.Я создал создание пользовательского пула потоков, как показано ниже
Executor executor = Executors.newFixedThreadPool(1);
Observable.just(1,2,3,4)
.observeOn(Schedulers.from(executor))
.subscribe(new Consumer<Integer>() {
@Override
public void accept(Integer integer) throws Exception {
System.out.println(integer);
}
});
Это работает правильно.Потоки Schedulers.newThread()
и Schedulers.computation()
также работают правильно.Только Schedulers.io
не влияет на код.Почему это так?
Ниже моя зависимость от Rxjava
<dependency>
<groupId>io.reactivex.rxjava2</groupId>
<artifactId>rxjava</artifactId>
<version>2.2.4</version>
</dependency>