【发布时间】:2020-01-17 17:40:53
【问题描述】:
我正在尝试学习 RxJava2 库的基础知识,现在我被困在以下时刻:
我已经通过Flowable.generate(...) 生成了myFlowable,现在我需要等待所有任务完成执行,然后才能继续进行。
这是展示问题的代码:
myFlowable.parallel()
.runOn(Schedulers.computation())
.map(val -> myCollection.add(val))
.sequential()
.subscribe(val -> {
System.out.println("Thread from subscribe: " + Thread.currentThread().getName());
System.out.println("Value from subscribe: " + val.toString());
});
System.out.println("Before sleep - Number of objects: " + myCollection.size());
try {
Thread.sleep(1000);
System.out.println("After sleep - Number of objects: " + myCollection.size());
} catch (InterruptedException e) {
e.printStackTrace();
}
我完成所有任务并将结果添加到集合中。如果我在 myFlowable 块之后检查集合大小,那么它会有所不同,如果我在小的 Thread.sleep() 之后检查它。有什么方法可以检查所有任务是否已完成执行,我们可以继续进行吗?任何帮助或指导将不胜感激。
【问题讨论】:
标签: java multithreading asynchronous rx-java2