2016-10-10 18 views
0

AsyncTask被执行seriallu,但我们可以使用executeOnExecutor并行地执行它们。我们可以在Android中并行执行多少个Asynctask?你可以并行执行多少个AsyncTasks?

+0

可能有[可以在单个流程应用程序中运行多少个AsyncTasks]的副本(http://stackoverflow.com/questions/24505981/how-many-asynctasks-i-can-run-in-an-single-过程应用程序) –

回答

0

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

MAXIMUM_POOL_SIZE = CPU_COUNT * 2 + 1; 

因此,AysncTask的最大数量取决于CPU计数。

参考:

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

+1

除此之外,您还可以使用自己的设置创建自己的执行程序。所以用一个定制执行器,它在理论上可以是无限的。 –

0

检查这个答案。

AsyncTask使用线程池模式运行 doInBackground()中的内容。这个问题最初(在早期的Android操作系统 版本中)池大小只是1,这意味着一堆AsyncTasks没有并行计算 。但后来他们修复了这个问题,现在 的大小是5,所以至多5个AsyncTasks可以同时运行。不幸的是我 不记得他们改变了什么版本。

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

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