2016-10-10 3 views
0

AsyncTask исполняются seriallu, но мы можем выполнить их параллельно с использованием executeOnExecutor. Сколько Asynctask можно выполнить параллельно в Android?Сколько ASyncTasks вы можете выполнять параллельно?

+0

Возможный дубликат [Сколько AsyncTasks я могу запускать в одном приложении процесса] (http://stackoverflow.com/questions/24505981/how-many-asynctasks-i-can-run-in-an-single- process-application) –

ответ

0

Android использует ThreadPool внутри AsyncTask. Максимальный размер этого пула потоков составляет

MAXIMUM_POOL_SIZE = CPU_COUNT * 2 + 1; 

Таким образом, максимальное количество AysncTask зависит от количества процессоров.

Ссылка:

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

+1

Добавляя к этому, вы также можете создать своего собственного исполнителя с собственными настройками. Таким образом, с помощью пользовательского исполнителя он может быть теоретически неограничен. –

0

Проверить этот ответ.

AsyncTask использует шаблон пула потоков для запуска материала от doInBackground(). Первоначально проблема (в ранних версиях ОС Android ) размер пула был всего 1, что означает отсутствие параллельных вычислений для связки AsyncTasks. Но позже они исправили это, и теперь размер равен 5, поэтому максимум 5 AsyncTasks могут выполняться одновременно. К сожалению I не помню, в какой версии именно они изменили это.

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

Также проверьте ссылку выше. Надеюсь, это поможет.

1

Я считаю, что это StackOverflow пост уже ответил на ваш вопрос: How many AsyncTasks i can run in an single process application

Сколько AsyncTasks вы можете запустить одновременно?

В большинстве версий Android, ответ 128.

Пожалуйста, быстрый поиск, прежде чем задавать эти вопросы.

Смежные вопросы