В настоящее время используется rxjava ver 1.2.4 и rxandroid 1.2.1. У меня есть вопрос относительно .subscribeOn(Schedulers.io())
, который я прочитал из javadoc, который есть:Число потоков RxIoScheduler продолжает расти
«Реализация поддерживается потоком-потоком Исполнителя, который будет расти по мере необходимости».
Как видно из журнала, я понимаю количество потоков продолжают расти каждый раз я сделать некоторые задачи:
12-28 11:17:03.879 D/HistoryDatabaseHelper: RxIoScheduler-22
12-28 11:17:03.918 D/HistoryDatabaseHelper: RxIoScheduler-19
12-28 11:17:03.918 D/HistoryDatabaseHelper: RxIoScheduler-18
- Когда приложение становится неактивным, не предположить, нет какой-либо очереди выполнения задачи. Итак, следующая задача должна использовать обратно
RxIoScheduler-1
, нет? - Когда все потоки очистятся?
- Или это просто имя потока, которое меня путает, когда старая активная нить вроде
RxIoScheduler-1
очищается, когда она выполняет свою работу?
Я беспокоюсь, скоро приложение получит OOM или каким-то образом ударит OOM при выполнении тяжелой задачи из-за количества открываемых потоков.
Спасибо за объяснение! Я думаю, что отказаться от подписки на все подписки, играющие главную роль, чтобы освободить эти потоки, я прав? Я знал, что нормальный сетевой вызов и транзакция db достаточно хороши для использования io(), но можете ли вы привести пример, когда вычисление() пригодится? Является ли декодирование изображений рассмотрением вычислительной задачи? – Bryanleesh