我最近买了摩托的Atrix 2手机。 当我想看看在手机处理器规格,调用Runtime.getRuntime()。availableProcessors()返回1的/ proc / cpuinfo中也有大约只是处理器0的信息。
出于好奇,我检查了同在我朋友的三星Galaxy S2,这又是一个双核手机。 这也表明,没有。 芯的是1。
我查了同样的在我的摩托XOOM平板电脑这又是双核。 此时availableProcessors()返回2和cpuinfo中也有两个处理器0和处理器1的细节。
我很迷惑。 为什么一些设备进行不同的信息? 有人可以解释这种异常现象?
Runtime.getRuntime().availableProcessors()
只返回联机处理器的数量,所以它会返回1时,第二个核心正在睡觉。 这样做是为了在较少的资源密集型任务,以节省电力完成。
要查看所有可用的内核,看看/ SYS /设备/系统/ CPU /
这将让你的核心在Android(基于数量这篇文章 ):
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());
}
}