小编Geo*_*ell的帖子

阻止RxJava映射内部无法完成

以下(使用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)

计算调度程序有什么特别之处,使第一个例子不起作用?

deadlock blocking rx-java

2
推荐指数
1
解决办法
828
查看次数

标签 统计

blocking ×1

deadlock ×1

rx-java ×1