在安卓系统中,Executors.newFixedThreadPool(size)会考虑CPU核心,还是我应该这么做。值得吗?
如果我想一次加载50个映像,可能会尝试创建一个固定线程池,其中包含50个线程,但是:
可能是一些因素使得它比使用2-3个线程的执行器慢,对吗?
因此,newFixedThreadPool将考虑CPU核心(以及应该这样做)还是我应该这样做。
发布于 2016-06-21 13:21:32
在Android中,Executors.newFixedThreadPool(大小)会考虑CPU核心吗?
不是的。指定线程数。Android不会以某种方式根据设备所拥有的CPU内核来扩展线程数量,更不用说当前活动的CPU内核的数量了。
我应该这么做吗?
可能吧。
值得吗?
可能吧。在您的情况下,您在很大程度上是I/O绑定的,所以使用多个线程是个好主意。但是,50可能太多了(引用的上下文切换,加上50个堆栈的堆空间)。一个典型的大小调整算法是(2 *数核)+ 1。
https://stackoverflow.com/questions/37945502
复制相似问题