我想知道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是否维护顺序?
是的,即使您将事件交给这样的其他调度程序,响应式流也将保持事件的顺序。
内部将事件放入队列中,由调度程序(as documented here)选择的单个线程工作程序按顺序从队列中提取事件。