gpt4 book ai didi

android - 使用 executeOnExecuter 可以并行执行多少次?

转载 作者:行者123 更新时间:2023-11-30 00:37:53 24 4
gpt4 key购买 nike

在我的应用程序中,当用户点击列表中的文档时,我需要提供文档下载功能。

因此,对于多个 Activity 线程,我想到了 AsyncTask。但我也注意到人们并没有推荐 AsyncTask 用于这种操作。因为在这种情况下大没有。线程将在点击文档时开始。

不采用 AsynTask 的另一个原因是“现代 AsyncTask 被限制为 128 个并发任务”。这意味着,如果您排队超过 138 个任务才能完成,您的应用将会崩溃。

  1. executeOnExecutor() 方法会解决我的目的还是我需要重新考虑它?
  2. 如果我同时启动 50 个任务,那么所有这些任务都由 executeOnExecutor() 同时运行吗?
  3. 并发任务限制(128)是否也适用于 executeOnExecutor()?

我期待完美的答案。

最佳答案

Another reason to don't take AsynTask is that "The modern AsyncTask is limited to 128 concurrent tasks". Means that if you queue up more than 138 tasks before they can complete, your app will crash.

更准确地说,AsyncTask 的内置执行器使用一个 128 元素的工作队列来处理等待线程的请求。但请注意,此限制未记录在案,可能会发生变化。

Will executeOnExecutor() method solve my purpose

这完全取决于您提供给 executeOnExecutor()Executor 类型。

If I start 50 task at same time then all these task run simeltenioulsy by executeOnExecutor()?

没有。对于初学者,您的 CPU 没有那么多内核。

Concurrent task limit(128) also applicable to executeOnExecutor()?

仅当您使用该限制设置您的 Executor 时。如果您使用两个内置的 AsyncTask 执行器之一(SERIAL_EXECUTORTHREAD_POOL_EXECUTOR),那么是的,该队列限制应该到位。

关于android - 使用 executeOnExecuter 可以并行执行多少次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43115714/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com