当前位置: 首页 > 知识库问答 >
问题:

Schedulers.io()和Schedulers.computation()有什么区别

邓高韵
2023-03-14

我在couchbase中使用可观测值。

调度程序之间的区别是什么。io()和调度程序。计算()?

共有2个答案

齐起运
2023-03-14

根据rx文件:

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

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

公羊招
2023-03-14

RxJava调度程序简介。

>

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

    调度程序。newThread()–使用它,每次调度任务时都会创建一个新线程。通常建议不要使用调度器,除非有一个非常长的运行操作。通过newThread()创建的线程将不会被重用。

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

    Schedulers.single()-此调度程序将按顺序执行添加的所有任务。这可以在需要顺序执行时使用。

    调度程序。immediate()–此调度器通过阻塞主线程以同步方式立即执行任务。

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

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

  •  类似资料:
    • 为什么它们被用于不同类型的任务?它们在处理计算任务和io任务时有什么不同? schedulers.io()--用于I/O绑定的工作,如阻塞I/O的异步性能,该调度程序由线程池支持,线程池将根据需要增长;对于普通的计算工作,切换到Schedulers.Computation();默认情况下,schedulers.io()是一个CachedThreadScheduler,它类似于具有线程缓存的新线程调

    • 我已经阅读了很多关于rxjava调度器的答案,比如下面的用例,调度器io和调度器计算,rxjava2调度器io和具有大并发请求的调度器计算之间的区别是什么。 最常见的解释是使用Schedulers.computation()进行CPU密集型工作 并使用调度程序。io()用于与文件系统交互、与数据库或服务交互、REST API调用 通过CPU密集型工作,我假设/考虑图像调整大小/操作,大数据集等(如

    • 我正在使用Rxjava2和Spring Boot。 我在服务器上有500个并发请求。 每个请求产生10个线程,这些线程调用其他服务(因此IO工作)

    • 问题内容: 两者都意味着空间,但是有什么区别吗? 问题答案: 一个是不间断空间,另一个是常规空间。不间断的空格表示该行不应在该点处换行,就像它不会在一个单词的中间换行一样。 此外,正如斯文德(Svend)在其评论中指出的那样,不间断的空间不会崩溃。

    • 本文向大家介绍<%# %> 和 <% %> 有什么区别?相关面试题,主要包含被问及<%# %> 和 <% %> 有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 答:<%# %>表示绑定的数据源 <%%>是服务器端代码块  

    • 问题内容: 以下代码之间有什么区别: 和 Python建议采用一种做事方式,但有时似乎不止一种。 问题答案: 一个是函数调用,一个是文字: 使用第二种形式。它更具Python风格,并且可能更快(因为它不涉及加载和调用单独的函数)。