Observable.create(new Observable.OnSubscribe<Integer>() {
public void call(final Subscriber<? super Integer> obs) {
new Thread(){
public void run(){
obs.onNext(1);
}
}.start();
new Thread(){
public void run(){
obs.onNext(2);
}
}.start();
new Thread(){
public void run(){
obs.onNext(3);
}
}.start();
obs.onCompleted();
}
}).subscribe(new Subscriber<Integer>(){
public void onCompleted() {
System.out.println("Complete");
}
public void onError(Throwable arg0) {
// TODO Auto-generated method stub
}
public void onNext(Integer arg0) {
System.out.println(arg0);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
如您所见,我想使用RxJava对Java进行多线程处理
我在Google上研究过很多资源,但大多数是针对Android的
有人能说出实施它的最简单方法吗?
我认为我的代码有点:&lt;
答案 0 :(得分:3)
嗯,有点不清楚你在问什么,但是至少粗略地读一下Observable类是值得的,因为它有很多让你的生活更轻松的方法。例如,您的代码大致转换为:
Observable
.just(1,2,3)
.subscribeOn(Schedulers.io())
.zipWith(Observable.interval(1000,1000,TimeUnit.milliseconds),
(item, pos) -> item)
.doOnCompleted(() -> System.out.println("Complete");
.subscribe(item -> System.out.println(item));
但是,你首先需要明确你想做什么 - 你能说出来吗?