gpt4 book ai didi

java - RX Java - subscribeOn 和 observeOn 的不同行为

转载 作者:搜寻专家 更新时间:2023-11-01 03:31:35 24 4
gpt4 key购买 nike

我是 RX java 的新手,我一直在尝试使用 observeOn 和 subscribeOn 方法。我读过它们之间的区别在于它们在设置调度程序(observeOn)后影响整个链(subscribeOn)或仅影响链的一部分。那么为什么下面的代码执行得很好(打印当前线程):

Observable obs = Observable.from(Arrays.asList("element", "2nd element"));
obs.observeOn(Schedulers.newThread())
.map(x -> x.toString().toUpperCase())
.subscribe(x -> System.out.println("NT:" + Thread.currentThread().getName() + x));

虽然此代码不打印任何内容:

Observable obs = Observable.from(Arrays.asList("element", "2nd element"));
obs.subscribeOn(Schedulers.newThread())
.map(x -> x.toString().toUpperCase())
.subscribe(x -> System.out.println("NT:" + Thread.currentThread().getName() + x));

最佳答案

您确定此代码不打印任何内容吗?

我试过这段代码:

Observable obs = Observable.from(Arrays.asList("element", "2nd element"));
obs.subscribeOn(Schedulers.newThread())
.map(x -> x.toString().toUpperCase())
.subscribe(x -> System.out.println("NT:" + Thread.currentThread().getName() + x));

Thread.sleep(5000);

输出:

NT:RxNewThreadScheduler-1ELEMENT
NT:RxNewThreadScheduler-12ND ELEMENT

也许你忘记了sleep或者做一些其他的工作让应用程序等待新的RxJava线程的完成?

关于java - RX Java - subscribeOn 和 observeOn 的不同行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51280900/

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