【发布时间】:2015-05-03 06:48:16
【问题描述】:
大家好,我对在 Android 中并行执行多个异步任务有点困惑
在 Donut 之前它只是单个处理意味着我们一次只能执行一个任务,但后来它发生了变化,我们可以并行执行多个 asynctask,在这种情况下,执行多个 asynctask 也有限制,我们只能执行一次有 138 个异步任务线程,否则它将通过异常,但后来的蜂窝它已经改变,我们可以一次执行 5 个异步任务,10 个可以在等待队列中,但是如果我们一次执行超过 15 个异步任务意味着如果我将一次执行 16 个任务,然后它将并行执行 6 个任务,其中 10 个将在队列中,这意味着等待队列中至少有 10 个任务等待工作线程完成,并且稍后在 Kitkat 中它已经变化,它首先获取当前在 Vm 中运行的处理器数量,并据此执行多个异步任务。
现在我的问题是:
并行执行多个异步任务有什么问题。
为什么限制一次只能执行 138 个异步任务。
为什么和安卓版本不一样。
在 kitkat 中获取当前在 VM 中运行的处理器数量并据此执行异步任务的确切含义是什么。
asynctask 在后台使用什么来跟踪等待的 asynctask 和 Running Task。
请回答我的问题。
【问题讨论】:
-
这是一部手机,不是超级计算机。需要有个限度。如果 android 允许您的应用程序并行运行 x 个异步任务,其他应用程序也会利用它并并行运行它们的 x 个异步任务。操作系统管理这么多线程变得很麻烦。因此,需要有一个限制。每台机器都有fork的限制。除此之外,它无法创建新线程。
标签: java android multithreading asynchronous android-asynctask