2017-02-15 69 views
0

我的应用程序使用RxAndroidBle从BLE外设异步接收数据包,并将它们组装到更大的帧中。看起来像Schedulers.io()是合适的,但我们被警告(没有解释)不要在io Scheduler上执行“计算”。简单地将字节从一个数组复制到另一个数作为“计算”?如果是这样,我是否需要创建单独的调度程序,一个用于接收数据包,另一个用于组装框架?那将是什么样子?反应调度器io和计算之间的区别?

回答

2

复制从一个字节数组到另一个算作“计算”,因为它不是CPU密集型的工作(你等方式再木卫一,那么你正在做的内存拷贝),计算调度设计CPU密集型工作,其线程数由CPU的核心限制。
io调度程序不是线程绑定的,因此适用于io阻塞操作。

你可以阅读这里的分歧详细的解释: rxJava Schedulers Use Cases

+0

非常有用的答案和链接,谢谢 –