我的应用程序使用RxAndroidBle异步接收来自BLE外设的数据包,并将它们组装成更大的帧。看起来像Schedulers.io()是合适的,但我们已经警告(没有解释)不做"计算"在io调度程序上。简单地将字节从一个数组复制到另一个数组是否算作"计算"?如果是这样,我是否需要创建单独的调度程序,一个用于接收数据包,另一个用于组装帧?那会是什么样的?
答案 0 :(得分:2)
将字节从一个数组复制到另一个数组不会计为“计算”,因为它不是CPU密集型工作(等待时间更长到io然后进行内存复制),计算调度程序专为CPU密集型工作而设计,其线程数由CPU核心限制 虽然io调度程序不是线程绑定的,因此适用于io阻塞操作。
您可以在此处阅读有关差异的详细说明: rxJava Schedulers Use Cases