Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在并行线程中执行observable_Java_Multithreading_Concurrency_Rx Java - Fatal编程技术网

Java 如何在并行线程中执行observable

Java 如何在并行线程中执行observable,java,multithreading,concurrency,rx-java,Java,Multithreading,Concurrency,Rx Java,我有一个可观察的消息,它包含几个消息。我想同时处理这些消息。我如何使用rxJava做到这一点 消息。(并行执行可观察项的代码)。订阅(msg->process(msg)) (如果observable包含五条不同的消息,那么我需要在五个单独的线程中处理这五条消息)运行“观察”消息的单个线程,并将它包含的每条消息分派给提交给某种类型的新消息处理任务(例如simpleRunnable) 在这里,您可以找到简单的操作方法:如果您想留在可观察的世界中,您可以flatMap使用subscribeOn和您想要

我有一个可观察的消息,它包含几个消息。我想同时处理这些消息。我如何使用rxJava做到这一点

消息。(并行执行可观察项的代码)。订阅(msg->process(msg))

(如果observable包含五条不同的消息,那么我需要在五个单独的线程中处理这五条消息)

运行“观察”消息的单个线程,并将它包含的每条消息分派给提交给某种类型的新消息处理任务(例如simple
Runnable


在这里,您可以找到简单的操作方法:

如果您想留在
可观察的世界中,您可以
flatMap
使用
subscribeOn
和您想要并行计算的每个元素:

Observable.range(1, 10)
.flatMap(v -> 
    Observable.fromCallable(() -> compute(v))
    .subscribeOn(Schedulers.computation)
)
.subscribe(e -> { }, Throwable::printStackTrace);

这听起来像是多线程和NIO反应模型的糟糕组合。你确定这是件好事吗?订阅5个观察者到可观察对象?如果你想让结果保持给定的顺序,那么你可以使用
concatmapanger
而不是
flatMap
,并保持并发性。