RxJava Schedulers 调度器
精华
小牛编辑
128浏览
2023-03-14
调度器在多线程环境中用于与 Observable 操作符一起工作。
根据Reactive,Scheduler 用于调度运算符链如何应用于不同的线程。
默认情况下,一个 Observable 和你应用到它的操作符链将在调用它的 Subscribe 方法的同一个线程上完成它的工作,并通知它的观察者。SubscribeOn 运算符通过指定 Observable 应在其上运行的不同调度程序来更改此行为。ObserveOn 运算符指定了一个不同的调度程序,Observable 将使用该调度程序向其观察者发送通知。
RxJava 中有以下类型的调度器可用:
调度器 | 描述 |
---|---|
Schedulers.computation() | 创建并返回一个用于计算工作的调度程序。要调度的线程数取决于系统中存在的 CPU。每个 CPU 允许一个线程。最适合事件循环或回调操作。 |
Schedulers.io() | 创建并返回一个用于 IO 绑定工作的调度程序。线程池可以根据需要进行扩展。 |
Schedulers.newThread() | 创建并返回一个为每个工作单元创建一个新线程的调度程序。 |
Schedulers.trampoline() | 创建并返回一个调度程序,该调度程序将当前工作完成后要执行的当前线程上的工作排入队列。。 |
Schedulers.from(java.util.concurrent.Executor executor) | 将 Executor 转换为新的 Scheduler 实例。 |