RxJava - Schedulers 调度程序
调度程序用于多线程环境中,与 Observable 运算符配合使用。
根据 Reactive,调度程序用于安排运算符链如何应用于不同的线程。
默认情况下,Observable 和您应用于它的运算符链将在调用其 Subscribe 方法的同一线程上完成其工作并通知其观察者。SubscribeOn 运算符通过指定 Observable 应在其上运行的不同调度程序来更改此行为。 ObserveOn 操作符指定 Observable 将用来向其观察者发送通知的不同 Scheduler。
RxJava 中有以下类型的 Scheduler −
Sr.No. | Scheduler & 说明 |
---|---|
1 | Schedulers.computation() 创建并返回用于计算工作的 Scheduler。要调度的线程数取决于系统中存在的 CPU。每个 CPU 允许一个线程。最适合事件循环或回调操作。 |
2 | Schedulers.io() 创建并返回用于 IO 绑定工作的 Scheduler。线程池可以根据需要进行扩展。 |
3 | Schedulers.newThread() 创建并返回一个 Scheduler,该 Scheduler 为每个工作单元创建一个新的线程。 |
4 | Schedulers.trampoline() 创建并返回一个 Scheduler,该 Scheduler 将当前线程上的工作排队,以便在当前工作完成后执行。 |
4 | Schedulers.from(java.util.concurrent.Executor executor) 将 Executor 转换为新的 Scheduler 实例。 |