Android Сколько потоков я могу сделать?

У меня есть Android-приложение, в котором есть отдельные вещи, но все они в основном являются потоками (и определенно являются потоками для отладчика Android).

Есть несколько прослушивателей анимации, которые соединяются и звонят друг другу

Существует таймер обратного отсчета, который всегда отсчитывает до нуля после его запуска.

Теперь мне нужно рассмотреть возможность добавления дополнительных таймеров обратного отсчета. Сколько из таких процессов цикла я могу продолжать? В этой конкретной реализации меня не интересуют производительность, эффективность и т.д., Пока это не станет очевидным.

Проницательность оценена

Ответ 1

Я был бы очень удивлен, узнав, что вы исчерпали количество потоков, которые вы можете безопасно использовать в приложении Android, до тех пор, пока вы должным образом управляете их жизненным циклом и не допускаете возникновения "циклов занятости" и т.д.

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

Ответ 2

Нет максимума, о котором я знаю. Я могу сказать вам, однако, что вам, скорее всего, НЕ НУЖНО, что многие потоки.

Вы можете оставить слушателей обратного отсчета в одном потоке, используя Android Handler, в частности метод postDelayed(). Запустите a Looper в отдельном потоке и используйте Handler для управления тайм-аутами - не ожидание ожидания или цикл сна.

Ответ 3

Я не считаю, что таймер обратного отсчета создаст потоки - он должен просто добавить вашу задачу в очередь на ваш основной поток из внешнего вида.

Все ваши слушатели должны проходить в одном и том же потоке (есть один поток, который управляет всеми слушателями (для видимых объектов в любом случае).

Таким образом, вы, вероятно, не используете нигде почти столько потоков, сколько вы думаете. Если бы вы создавали много потоков, я бы волновался - их очень сложно синхронизировать и может стоить вам гораздо больше, чем вы бы выиграли, но с перечисленными структурами я бы пошел и выделил столько, сколько вы считаете нужным (но, конечно же, тест на производительность на дешевом устройстве)