我在下面的用例为rxjava调度程序,what-is-the-difference-between-schedulers-io-and-schedulers-computation,rxjava2-schedulers-io-vs-schedulers-computation-with-large-concurrent-request上读了这么多答案。
最常见的解释是使用Schedulers.computation()进行CPU密集型工作
并使用Schedulers.io()与文件系统交互,与数据库或服务交互,REST调用
通过CPU密集型工作,我假设/考虑图像调整/操作、大数据集等(如果您知道Android应用程序通常执行的其他CPU密集型任务,请添加一些其他CPU密集型任务)
我的问题是
发布于 2021-08-18 09:36:40
事实上,它们只是使用不同的线程池,因此需要用于它们的预期目的。
对于数据处理,您需要使用Schedulers.computation()
,并用于数据输入和输出Schedulers.io()
。
这样做是为了限制无限新线程的创建,从而创建一个作业队列。
发布于 2021-08-24 07:45:24
来自rx文件
Schedulers.computation( ) --用于计算工作,例如事件循环和回调处理;不要为I/O使用此调度程序(使用Schedulers.io( ) );默认情况下,线程数等于处理器数。
Schedulers.io( ) --用于I/O绑定工作,例如阻塞I/O的异步性能,此调度程序由线程池支持,该线程池将根据需要增长;对于普通计算工作,切换到Schedulers.computation( );默认情况下,Schedulers.io( )是CachedThreadScheduler,它类似于具有线程缓存的新线程调度程序。
https://stackoverflow.com/questions/68793004
复制相似问题