Как создать Thread Pool

«Как создать Thread Pool» — вопрос из категории Многопоточность, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Android для создания Thread Pool можно использовать ExecutorService. Рекомендуется использовать ThreadPoolExecutor с настраиваемыми параметрами:

val threadPool: ExecutorService = Executors.newFixedThreadPool(4) // 4 потока
// Или с тонкой настройкой:
val customPool = ThreadPoolExecutor(
    2, // минимальное кол-во потоков
    4, // максимальное
    60L, TimeUnit.SECONDS, // время простоя до умирания
    LinkedBlockingQueue() // очередь задач
)

Использование:

threadPool.execute {
    // Фоновая работа
}

Важно:

  • Для UI-задач используйте Handler, Coroutine или AsyncTask (deprecated)
  • Закрывайте пул через shutdown() или shutdownNow()
  • В Kotlin предпочтительнее Coroutines с Dispatchers.IO