Android的最大线程数

16

我想知道在Android设备上能够运行的线程数量是否存在最大限制。这一取决于设备类型吗?


3
从技术上讲,线程数是没有限制的,但是一定程度上,拥有更多线程的效率会变低。如果您想看一个几乎最优的“线程池”实现,请查看“AsyncTask”的源代码。 - Xaver Kapeller
你是在问FTC吗? - Ankit
2个回答

24

正如@Xaver Kapeller所评论的那样,您可以创建任意数量的Thread,但更多的thread实际上并不是解决方案的一部分。

Processor中的一个core(CPU)一次只能处理一个Task(ProcessThread)。

因此,在具有1个coreProcessor中,一次只能处理一个thread。因此,在这个processor上打开多少个线程都没有关系。所有正在运行的threads都将依次使用处理器,利用处理器的量子时间,看起来只是并发的。

具有2个核心的Processor将同时处理2个threads(两个线程的并发执行)。

具有4个coreProcessor将同时处理4个threads(四个线程的并发执行)。

具有8个core的Processor将同时处理8个threads(八个线程的并发执行),以此类推。


2
对于IO绑定操作,运行比核心更多的线程仍然是有益的,因为大多数线程可以并行地进行等待。 - drakorg

2
在Android设备上可以运行的最大线程数量取决于设备是否具有32位处理器或64位处理器以及Android堆栈大小。但是,在达到实际最大限制之前,您将面临内存限制。
此文章中所述,您可以运行测试来确定您的Android版本可以创建的最大线程数。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接