gpt4 book ai didi

java - 在Rxjava中创建线程

转载 作者:行者123 更新时间:2023-12-03 12:54:39 25 4
gpt4 key购买 nike

我在just()运算符中传递了两个参数。我的代码段是:

Observable<Integer> observable = Observable.just(1,2);
observable.subscribeOn(Schedulers.newThread())
.subscribe(
new Observer<Integer>() {
@Override
public void onSubscribe(Disposable d) {

}

@Override
public void onError(Throwable e) {

}

@Override
public void onComplete() {

}

@Override
public void onNext(Integer e) {
System.out.println(e);
//request web service

});

我观察到的是没有为每个发出的项目创建单独的线程。显示为 just参数的项目按顺序运行。如何为每个发射的项目创建单独的线程?

最佳答案

您可以使用flatMap并在flatMap内创建新的Observable并使用subscriptionOn

@Test
public void test() {
Observable.just(1, 2)
.flatMap(item -> Observable.just(item)
.subscribeOn(Schedulers.newThread())
.doOnNext(i -> System.out.println("Thread:" + Thread.currentThread())))
.subscribe(System.out::println);
}

您可以在这里看到更多有关可观察到的异步的示例 https://github.com/politrons/reactive/blob/master/src/test/java/rx/observables/scheduler/ObservableAsynchronous.java

关于java - 在Rxjava中创建线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43063997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com