以下(使用RxJava 1.2.4的错误方法)代码无法解除阻塞并且永远不会完成.
Scheduler scheduler = Schedulers.computation();
Observable.range(0, 100).map(i -> {
System.out.println("onNext " + i);
return Observable.just(i).subscribeOn(scheduler).toBlocking().single();
}).subscribeOn(scheduler).toBlocking().subscribe();
System.out.println("finished");
Run Code Online (Sandbox Code Playgroud)
如果将第一行更改为固定的线程池,则完成.
Scheduler scheduler = Schedulers.from(Executors.newFixedThreadPool(8));
Run Code Online (Sandbox Code Playgroud)
计算调度程序有什么特别之处,使第一个例子不起作用?