【发布时间】:2015-05-05 03:12:28
【问题描述】:
我在搞乱 RxJava,我想流式传输一千个连续整数。然后我想将它们异步拆分为奇数和偶数流,然后异步打印它们。
但是,我什么也没打印出来,或者至少是部分输出。我错过了什么?我的时间安排不正确吗?还是控制台在 Eclipse 中存在多线程问题?
public static void main(String[] args) {
List<Integer> values = IntStream.range(0,1000).mapToObj(i -> Integer.valueOf(i)).collect(Collectors.toList());
Observable<Integer> ints = Observable.from(values).subscribeOn(Schedulers.computation());
Observable<Integer> evens = ints.filter(i -> Math.abs(i) % 2 == 0);
Observable<Integer> odds = ints.filter(i -> Math.abs(i) % 2 != 0);
evens.subscribe(i -> System.out.println(i + " IS EVEN " + Thread.currentThread().getName()));
odds.subscribe(i -> System.out.println(i + " IS ODD " + Thread.currentThread().getName()));
}
【问题讨论】:
标签: java multithreading asynchronous reactive-programming rx-java