Couchbase Schedulers.io()和Schedulers.computation()之间的区别是什么

Couchbase Schedulers.io()和Schedulers.computation()之间的区别是什么,couchbase,rx-java,observable,Couchbase,Rx Java,Observable,我在couchbase中使用可见光 Schedulers.io()和Schedulers.computation()之间的区别是什么?来自以下方面: -用于计算工作,如事件循环和回调处理;不要将此计划程序用于I/O(使用Schedulers.io( ) 相反);默认情况下,线程数等于处理器数 -用于I/O绑定的工作,如阻塞I/O的异步性能,此计划程序由线程池支持,线程池将根据需要增长;对于普通计算工作,请切换到Schedulers.computation( ); 调度程序( ) 默认情况下是C

我在couchbase中使用可见光

Schedulers.io()
Schedulers.computation()
之间的区别是什么?

来自以下方面:

-用于计算工作,如事件循环和回调处理;不要将此计划程序用于I/O(使用Schedulers.io( ) 相反);默认情况下,线程数等于处理器数


-用于I/O绑定的工作,如阻塞I/O的异步性能,此计划程序由线程池支持,线程池将根据需要增长;对于普通计算工作,请切换到Schedulers.computation( ); 调度程序( ) 默认情况下是CachedThreadScheduler,它类似于带有线程缓存的新线程调度器


RxJava调度程序简介

  • Schedulers.io()–它用于执行非CPU密集型操作,如进行网络调用、读取光盘/文件、数据库操作等,它维护一个线程池

  • Schedulers.newThread()–使用此选项,每次调度任务时都会创建一个新线程。通常建议不要使用scheduler,除非有长时间运行的操作。通过newThread()创建的线程不会被重用

  • 调度程序。计算()–此调度程序可用于执行CPU密集型操作,如处理海量数据、位图处理等,使用此调度程序创建的线程数完全取决于可用的CPU内核数

  • 调度程序。single()–此调度程序将按添加的顺序执行所有任务。当需要顺序执行时,可以使用此命令

  • Schedulers.immediate()–此计划程序通过阻塞主线程以同步方式立即执行任务

  • Schedulers.trampoline()–它以先进先出的方式执行任务。通过将后台线程数限制为一个,将逐个执行所有计划任务

  • 调度程序。from()–这允许我们通过限制要创建的线程数量,从执行器创建调度程序。当线程池被占用时,任务将排队


有什么不同?如前所述:一个用于IO工作(IO绑定)。一个用于计算工作(cpu绑定)。这些概念在分布式计算环境中得到了很好的理解。它并不特定于rx。@Reutsharbani他的意思是,“除了可用线程的数量之外,它们的实现有什么不同?”