【发布时间】:2016-05-10 05:56:07
【问题描述】:
我想知道在 Android 设备上运行的线程数是否有上限。这取决于设备的类型?
【问题讨论】:
-
技术上没有限制,但在某些时候,拥有更多线程会比拥有更少线程效率更低。如果您想查看
ThreadPool的最佳实现,请查看AsyncTask的源代码。 -
大声笑你要 FTC 吗?
标签: java android multithreading
我想知道在 Android 设备上运行的线程数是否有上限。这取决于设备的类型?
【问题讨论】:
ThreadPool 的最佳实现,请查看AsyncTask 的源代码。
标签: java android multithreading
正如@Xaver Kapeller 所说,您可以创建任意数量的Threads,但更多的thread 实际上并不是解决方案的一部分。
Processor 中的core(CPU) 将在给定时间仅处理一个Task(Process 或Thread)。
所以在Processor 中,有1 个核心将一次处理一个thread。所以从技术上讲,无论您为此processor 打开多少线程,它都会在给定时间为一个线程提供服务。所有正在运行的threads 将按顺序使用处理器,利用似乎只是并发的处理器的量子时间。
Processor 2 核一次将处理 2 个threads(同时执行两个线程)。
Processor 和 4 个core 将一次处理 4 个线程(同时执行四个线程。
8核Processor一次处理8个threads(8个线程并发执行。以此类推
【讨论】:
Android 设备上可以运行的最大线程数取决于设备是 32 位处理器还是 64 位处理器以及stack size of Android。但是在达到实际最大限制之前,您将受到内存限制。
如文章 here 中所述,您可以运行测试以确定您可以在 Android 版本中创建的最大线程数。
【讨论】: