80,472
社区成员




private void fun7(){
Integer[] st=new Integer[]{1,2,3,4,5,6,7,8};
Observable.from(st)
.subscribeOn(Schedulers.newThread())
.observeOn(Schedulers.newThread())
.flatMap(new Func1<Integer, Observable<String>>() {
@Override
public Observable<String> call(Integer st) {
return Observable.just(st)
.observeOn(Schedulers.newThread())//重新开启新线程
.map(new Func1<Integer,String>() {
@Override
public String call(Integer st) {
//进行数据处理
String s="";
try {
Thread.sleep(1200);
s=st+"@";
} catch (InterruptedException e) {
e.printStackTrace();
}
return s;
}
});
}
})
.subscribe(new Action1<String>() {
@Override
public void call(final String st) {
Log.e("fun7", st+",time:"+System.currentTimeMillis());
}
});
}
执行结果:
04-27 08:36:04.826: E/fun7(16325): 1@,time:1461746164720
04-27 08:36:04.826: E/fun7(16325): 2@,time:1461746164831
04-27 08:36:04.826: E/fun7(16325): 3@,time:1461746164831
04-27 08:36:04.826: E/fun7(16325): 4@,time:1461746164832
04-27 08:36:04.826: E/fun7(16325): 6@,time:1461746164832
04-27 08:36:04.826: E/fun7(16325): 7@,time:1461746164832
04-27 08:36:04.830: E/fun7(16325): 8@,time:1461746164834
04-27 08:36:04.830: E/fun7(16325): 5@,time:1461746164834
可以看到已经并发执行了
ArrayList<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
for (String str : list) {
Observable.just(str).subscribeOn(
Schedulers.newThread()).subscribe(new Action1<String>() {
@Override
public void call(String arg0) {
while (true)
Log.e("error", arg0);
}
});
}