Что такое Thread Pool

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

Ответ

Thread Pool — это набор предсозданных потоков, которые переиспользуются для выполнения задач. Вместо создания нового потока для каждой задачи (что дорого), Thread Pool берет свободный поток из пула и назначает ему задачу.

Преимущества:

  • Уменьшает накладные расходы на создание/уничтожение потоков
  • Контролирует количество одновременно работающих потоков

Пример (Kotlin):

val executor = Executors.newFixedThreadPool(4) // Пул из 4 потоков
executor.execute {
    // Выполнение задачи в фоновом потоке
    Log.d("ThreadPool", "Task running in ${Thread.currentThread().name}")
}
executor.shutdown() // Завершение работы пула

Используется в:

  • AsyncTask (устарел)
  • Coroutine Dispatchers (например, Dispatchers.IO)
  • WorkManager для фоновых задач