【问题标题】:Maximum number of thread Android [duplicate]Android的最大线程数[重复]
【发布时间】:2016-05-10 05:56:07
【问题描述】:

我想知道在 Android 设备上运行的线程数是否有上限。这取决于设备的类型?

【问题讨论】:

  • 技术上没有限制,但在某些时候,拥有更多线程会比拥有更少线程效率更低。如果您想查看ThreadPool 的最佳实现,请查看AsyncTask 的源代码。
  • 大声笑你要 FTC 吗?

标签: java android multithreading


【解决方案1】:

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

Processor 中的core(CPU) 将在给定时间仅处理一个TaskProcessThread)。

所以在Processor 中,有1 个核心将一次处理一个thread。所以从技术上讲,无论您为此processor 打开多少线程,它都会在给定时间为一个线程提供服务。所有正在运行的threads 将按顺序使用处理器,利用似乎只是并发的处理器的量子时间。

Processor 2 核一次将处理 2 个threads(同时执行两个线程)。

Processor 和 4 个core 将一次处理 4 个线程(同时执行四个线程。

8核Processor一次处理8个threads(8个线程并发执行。以此类推

【讨论】:

  • 对于 IO 绑定操作,运行比内核更多的线程仍然是有益的,因为它们中的大多数可以并行等待。
【解决方案2】:

Android 设备上可以运行的最大线程数取决于设备是 32 位处理器还是 64 位处理器以及stack size of Android。但是在达到实际最大限制之前,您将受到内存限制。

如文章 here 中所述,您可以运行测试以确定您可以在 Android 版本中创建的最大线程数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-20
    • 2018-10-14
    • 2016-09-14
    • 2020-11-02
    • 2011-10-05
    • 2023-03-03
    • 1970-01-01
    相关资源
    最近更新 更多