Работал ли с ExecutorService

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

Ответ

Да, работал. ExecutorService — это интерфейс из пакета java.util.concurrent, который упрощает управление потоками. Чаще всего использую ThreadPoolExecutor или Executors для создания пула потоков.

Пример:

val executor = Executors.newFixedThreadPool(4)  
executor.submit {  
    // Выполнение задачи в фоне  
    val result = doBackgroundWork()  
    runOnUiThread { updateUI(result) }  
}  
executor.shutdown() // Важно закрывать после использования  

Нюансы:

  • Не забывать вызывать shutdown() или shutdownNow(), иначе потоки могут остаться висеть.
  • Для UI-обновлений после фоновой работы использовать runOnUiThread/Handler.
  • Выбирать подходящий тип пула (Fixed, Cached, SingleThread).