首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是Executors.newFixedThreadPool(大小)考虑CPU核心,还是我应该这么做。值得吗?

是Executors.newFixedThreadPool(大小)考虑CPU核心,还是我应该这么做。值得吗?
EN

Stack Overflow用户
提问于 2016-06-21 13:14:17
回答 1查看 201关注 0票数 1

在安卓系统中,Executors.newFixedThreadPool(size)会考虑CPU核心,还是我应该这么做。值得吗?

如果我想一次加载50个映像,可能会尝试创建一个固定线程池,其中包含50个线程,但是:

  • 上下文切换
  • 可用CPU数量

可能是一些因素使得它比使用2-3个线程的执行器慢,对吗?

因此,newFixedThreadPool将考虑CPU核心(以及应该这样做)还是我应该这样做。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-21 13:21:32

在Android中,Executors.newFixedThreadPool(大小)会考虑CPU核心吗?

不是的。指定线程数。Android不会以某种方式根据设备所拥有的CPU内核来扩展线程数量,更不用说当前活动的CPU内核的数量了。

我应该这么做吗?

可能吧。

值得吗?

可能吧。在您的情况下,您在很大程度上是I/O绑定的,所以使用多个线程是个好主意。但是,50可能太多了(引用的上下文切换,加上50个堆栈的堆空间)。一个典型的大小调整算法是(2 *数核)+ 1。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37945502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档