rx-java IO Scheduler是否维护顺序?

问题描述 投票:1回答:1

我想知道Schedulers.io()是否将按照调用者的顺序执行任务。

public class SaveTest {

    @Inject
    private MyRepository myRepository;

    public void save()  {
        Observable.range(0, 20)
                .map(l -> new MyModel(l))
                .observeOn(Schedulers.io())
                .subscribe(myRepository::save);
    }
}

插入新数据时,即使不遵守顺序也没有问题。但是当更新ex:

    BankAccount account = new BankAccount();
    account.deposit(500);
    account.withdraw(50);

并且每个操作都将结果保存在反应流中,顺序非常重要。

我的问题是:IO Scheduler是否维护顺序?

java rx-java rx-java2
1个回答
4
投票

是的,即使您将事件交给这样的其他调度程序,响应式流也将保持事件的顺序。

内部将事件放入队列中,由调度程序(as documented here)选择的单个线程工作程序按顺序从队列中提取事件。

© www.soinside.com 2019 - 2024. All rights reserved.