我正在学习RxJava。一切都与异步有关。
这是代码
public void a(){
long st = System.currentTimeMillis();
int i = 100000;
p().map(x -> x*x).subscribe(x -> System.out.println(x));
p().map(x -> x*x).subscribe(x -> System.out.println(x));
long et = System.currentTimeMillis();
long d = et - st;
System.out.println(d);
}
public Observable<Integer> p(){
return Observable.create(subsrciber -> {
for(int i1= 0;i1<10000000;i1++){
Random r = new Random();
int g = r.nextInt(100);
if(i1 == g){
//
}else{
//
}
}
subsrciber.onNext(10);
});
}
这是什么异步? 我的意思是Observable是如何异步的?
此代码似乎完全同步。我想让它异步。我该怎么办?
我的意思是哪部分代码是异步运行的?
答案 0 :(得分:0)
Ankit,Observables默认为同步并按顺序执行所有订阅者。对于您的示例,如果您想要查看异步行为,可以尝试向其中一个observable添加延迟
p()。延迟(3,TimeUnit.SECONDS).map(x - &gt; x * x).subscribe(x - &gt; System.out.println(x));
这将使这个Observable每3秒执行一次,而另一个执行无延迟