【问题标题】:How many AsyncTasks can you execute in parallel?您可以并行执行多少个 AsyncTask?
【发布时间】:2016-10-10 06:35:14
【问题描述】:

AsyncTask 是串行执行的,但我们可以使用 executeOnExecutor 并行执行它们。我们可以在 Android 中并行执行多少个 Asynctask?

【问题讨论】:

标签: java android


【解决方案1】:

我相信这个 StackOverflow 帖子已经回答了你的问题:How many AsyncTasks i can run in an single process application

您一次可以运行多少个 AsyncTask?

在大多数 Android 版本中,答案是 128。

在提出这些问题之前,请先快速搜索一下。

【讨论】:

    【解决方案2】:

    Android 在 AsyncTask 中使用 ThreadPool。此线程池的最大大小为

    MAXIMUM_POOL_SIZE = CPU_COUNT * 2 + 1;
    

    所以 AysncTask 的最大数量取决于 CPU Count。

    参考:

    http://dsalgos.com/971/how-many-asynctasks-can-you-execute-in-parallel

    【讨论】:

    • 除此之外,您还可以使用自己的设置创建自己的执行器。因此,使用自定义执行器,理论上可以是无限的。
    【解决方案3】:

    检查这个答案。

    AsyncTask 使用线程池模式从 做背景()。问题最初是(在早期的 Android 操作系统中) 版本)池大小仅为 1,这意味着没有并行计算 对于一堆 AsyncTasks。但后来他们解决了这个问题,现在大小 是 5,所以最多可以同时运行 5 个 AsyncTask。不幸的是,我 不记得他们到底是在哪个版本中更改的。

    Running multiple AsyncTasks at the same time -- not possible?

    还要检查上面的链接。希望它会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多