在couchbase中,Observables
有什么区别: Schedulers.io() 和 Schedulers.computation()
答案 0 :(得分:15)
Schedulers.computation( ) - 用于计算工作,例如事件循环和回调处理;不要将此调度程序用于I / O(改为使用Schedulers.io());默认情况下,线程数等于处理器数
Schedulers.io( ) - 用于I / O绑定工作,例如阻塞I / O的异步性能,此调度程序由一个将根据需要增长的线程池支持;对于普通的计算工作,切换到Schedulers.computation(); Schedulers.io()默认是CachedThreadScheduler,类似于带有线程缓存的新线程调度程序
答案 1 :(得分:5)
RxJava调度程序的简要介绍。
Schedulers.io() –用于执行非CPU密集型操作,例如进行网络调用,读取磁盘/文件,数据库操作等。此操作维护一个池线程数。
Schedulers.newThread() –使用此功能,每次计划任务时都会创建一个新线程。通常建议不要使用调度程序,除非运行时间很长。通过newThread()创建的线程将不会被重复使用。
Schedulers.computation() –此计划表可用于执行CPU密集型操作,例如处理大量数据,位图处理等。使用此计划程序创建的线程数完全取决于可用的CPU内核数量。
Schedulers.single() –此调度程序将按添加任务的顺序执行所有任务。当需要顺序执行时可以使用它。
Schedulers.immediate() –该调度程序通过阻塞主线程以同步方式立即执行任务。 Schedulers.trampoline()–以先进先出的方式执行任务。通过将后台线程数限制为一个,所有调度的任务将一一执行。
Schedulers.from() –通过限制要创建的线程数,这使我们可以从执行程序创建调度程序。当线程池被占用时,任务将排队。