Schedulers.io() 和 Schedulers.computation() 有什么区别
What is the difference between Schedulers.io() and Schedulers.computation()
我在 couchbase 中使用 Observables。
Schedulers.io()
和Schedulers.computation()
有什么区别?
Schedulers.computation( ) - meant for computational work such as event-loops and callback processing; do not use this scheduler for I/O (use Schedulers.io( ) instead); the number of threads, by default, is equal to the number of processors
Schedulers.io( ) - meant for I/O-bound work such as asynchronous performance of blocking I/O, this scheduler is backed by a thread-pool that will grow as needed; for ordinary computational work, switch to Schedulers.computation( ); Schedulers.io( ) by default is a CachedThreadScheduler, which is something like a new thread scheduler with thread caching
RxJava调度器简介.
Schedulers.io() – 这用于执行非CPU密集型操作,例如进行网络调用、阅读disc/files、数据库操作等,这里维护一个线程池
Schedulers.newThread() – 使用这个,每次安排任务时都会创建一个新线程。通常建议不要使用调度器,除非有一个非常长的-运行操作。通过 newThread() 创建的线程将不会被重用。
Schedulers.computation() – 此调度可用于执行 CPU 密集型操作,如处理大量数据、位图处理等,使用此调度程序创建的线程数完全取决于可用的 CPU 个内核数。
Schedulers.single() – 该调度器将按添加的顺序执行所有任务。这个可以在需要顺序执行的时候使用。
Schedulers.immediate() – 这个调度器通过阻塞主线程以同步方式立即执行任务。
Schedulers.trampoline() – 它以先进先出的方式执行任务。后台线程数限制为1个,所有定时任务都会一个一个执行。
Schedulers.from() – 这允许我们通过限制要创建的线程数从执行程序创建调度程序。当线程池被占用时,任务会排队
我在 couchbase 中使用 Observables。
Schedulers.io()
和Schedulers.computation()
有什么区别?
Schedulers.computation( ) - meant for computational work such as event-loops and callback processing; do not use this scheduler for I/O (use Schedulers.io( ) instead); the number of threads, by default, is equal to the number of processors
Schedulers.io( ) - meant for I/O-bound work such as asynchronous performance of blocking I/O, this scheduler is backed by a thread-pool that will grow as needed; for ordinary computational work, switch to Schedulers.computation( ); Schedulers.io( ) by default is a CachedThreadScheduler, which is something like a new thread scheduler with thread caching
RxJava调度器简介.
Schedulers.io() – 这用于执行非CPU密集型操作,例如进行网络调用、阅读disc/files、数据库操作等,这里维护一个线程池
Schedulers.newThread() – 使用这个,每次安排任务时都会创建一个新线程。通常建议不要使用调度器,除非有一个非常长的-运行操作。通过 newThread() 创建的线程将不会被重用。
Schedulers.computation() – 此调度可用于执行 CPU 密集型操作,如处理大量数据、位图处理等,使用此调度程序创建的线程数完全取决于可用的 CPU 个内核数。
Schedulers.single() – 该调度器将按添加的顺序执行所有任务。这个可以在需要顺序执行的时候使用。
Schedulers.immediate() – 这个调度器通过阻塞主线程以同步方式立即执行任务。
Schedulers.trampoline() – 它以先进先出的方式执行任务。后台线程数限制为1个,所有定时任务都会一个一个执行。
Schedulers.from() – 这允许我们通过限制要创建的线程数从执行程序创建调度程序。当线程池被占用时,任务会排队