0

我的应用程序使用 RxAndroidBle 异步接收来自 BLE 外设的数据包,并将它们组装成一个更大的帧。似乎 Schedulers.io() 是合适的,但我们被警告(没有解释)不要在 io 调度程序上进行“计算”。简单地将字节从一个数组复制到另一个算作“计算”吗?如果是这样,我是否需要创建单独的调度程序,一个用于接收数据包,另一个用于组装帧?那会是什么样子?

4

1 回答 1

2

将字节从一个数组复制到另一个不算作“计算”,因为它不是 CPU 密集型工作(您等待 io 的时间更长,然后您正在执行内存复制),为 CPU 密集型工作而设计的计算调度程序及其受 CPU 内核限制的线程数。
而 io 调度程序不受线程限制,因此适用于 io 阻塞操作。

您可以在此处阅读有关差异的详细说明: rxJava Schedulers Use Cases

于 2017-02-15T20:34:04.150 回答