Android多线程

时间:2015-06-13 12:27:47

标签: java android multithreading

我可以在Android应用程序中同时运行多少个Java线程 ?我认为这将是一个依赖于架构的东西,所以有没有办法确定相同的东西?

1 个答案:

答案 0 :(得分:2)

  

我可以在Android应用程序中同时运行多少个Java线程?

这取决于你对#34; run"的定义。和"同时"。

您可以根据需要启动任意数量的线程,主要受内存限制。

同时执行多少个线程取决于设备上的活动核心数。

  

我认为这将是一个依赖于架构的东西

除了架构,它还取决于发生了什么,因为Android设备会尽可能地关闭内核以节省电池电量。另外,根据线程的作用(例如,阻塞I / O),拥有比核心更多的线程是合理的。

典型的多核线程池大小调整算法是使用2n + 1个线程,其中n是核心数。 AsyncTask uses this approach,例如:

private static final int CPU_COUNT = Runtime.getRuntime().availableProcessors();
private static final int CORE_POOL_SIZE = CPU_COUNT + 1;
private static final int MAXIMUM_POOL_SIZE = CPU_COUNT * 2 + 1;

此处,线程池将增长到MAXIMUM_POOL_SIZE,这是内核数量(availableProcessors())加上一个的两倍。