首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于双核电话,availableProcessors()返回1

对于双核电话,availableProcessors()返回1
EN

Stack Overflow用户
提问于 2012-04-13 08:07:05
回答 2查看 2.3K关注 0票数 11

我最近买了一部Moto Atrix2手机。当我试图查看手机中的处理器规格时,Runtime.getRuntime().availableProcessors()返回了1。/proc/cpuinfo也只有处理器0的信息。

出于好奇,我查看了我朋友的三星Galaxy S2,这也是一款双核手机。这也说明了不是。核心数为1。

我在我的Moto xoom平板电脑上也检查了一下,它也是双核的。这一次,availableProcessors()返回2,cpuinfo还包含处理器0和处理器1的详细信息。

我很困惑。为什么有些设备会携带不同的信息?谁能解释一下这种反常现象?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-13 08:19:19

Runtime.getRuntime().availableProcessors()只返回在线处理器的数量,所以当第二个内核休眠时,它将返回1。这样做是为了在资源密集度较低的任务期间保存电源。

要查看所有可用内核,请查看/sys/devices/system/cpu/

票数 19
EN

Stack Overflow用户

发布于 2014-10-09 07:28:33

这将得到Android上的内核数量(基于this post):

代码语言:javascript
复制
public static int getCoresCount()
    {
    class CpuFilter implements FileFilter
      {
      @Override
      public boolean accept(final File pathname)
        {
        if(Pattern.matches("cpu[0-9]+",pathname.getName()))
          return true;
        return false;
        }
      }
    try
      {
      final File dir=new File("/sys/devices/system/cpu/");
      final File[] files=dir.listFiles(new CpuFilter());
      return files.length;
      }
    catch(final Exception e)
      {
      return Math.max(1,Runtime.getRuntime().availableProcessors());
      }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10133570

复制
相关文章

相似问题

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