我有Observable调用消息,其中包含几条消息。我想同时处理这些消息。我怎样才能使用rxJava?
消息。(并行执行可观察项目的代码).subscribe(msg-> process(msg))
(如果observable包含五个不同的消息,那么我需要在五个单独的线程中处理这五个消息)
答案 0 :(得分:3)
如果您希望留在Observable
世界,可以flatMap
subscribeOn
每个元素Observable.range(1, 10)
.flatMap(v ->
Observable.fromCallable(() -> compute(v))
.subscribeOn(Schedulers.computation)
)
.subscribe(e -> { }, Throwable::printStackTrace);
和并行计算:
import React, { Component, PropTypes } from 'react'
export default class InputFoo extends Component {
//export default React.createClass({
submitHandler(evt){
evt.preventDefault()
const { inputFooAction } = this.props
inputFooAction(evt.target[0].value);
}
//,
render() {
const { input } = this.props
return (<div>
<h1>Oh hey from inside the component {input}</h1>
<form onSubmit={this.submitHandler}>
<input type="text" id="theInput"/>
</form>
</div>)
}
}// )
//block below is commented out for es5
InputFoo.propTypes = {
inputFooAction: PropTypes.func,
input: PropTypes.string
}
答案 1 :(得分:0)
运行单线程&#34;观察&#34;您的消息,并将其包含的每条消息分发给提交给某种workers thread pool的新消息处理任务(例如简单Runnable
)。
在这里您可以找到简单的操作方法:https://docs.oracle.com/javase/tutorial/essential/concurrency/executors.html