Разве плохо иметь много живых HandlerThreads, ничего не делая, просто ожидая?

Я использую Handler в сочетании с HandlerThread все в моем проекте Android. Я использую большинство из них в Сервисах. Там мои обработчики, поддерживаемые отдельным HandlerThread с низким приоритетом, создаются в onCreated() и остановился в onDestroy(),

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

Всего в моем приложении около 20 потоков (половина из них - HandlerThreads). Итак, это проблема с производительностью, когда столько потоков открыто? В плохо ли иметь потоки, ожидающие в Java? Я узнал, что это должно быть правильно. Я просто хочу проверить, относится ли это к HandlerThreadтакже.

1 ответ

Около 20? Наверное, не так уж и плохо. Это может немного снизить производительность планировщика ядра, но до тех пор, пока вы не достигнете предела ОС и не опрашиваете, незанятые потоки не загружают ЦП. Хотя они могут занимать память, поэтому не держитесь за ссылки, которые вам абсолютно не нужны в этих потоках.

Другие вопросы по тегам