Какие знаешь классы для многопоточности в Java

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

Ответ

Thread – базовый класс для создания и управления потоками.
Runnable – интерфейс для определения задачи, выполняемой в потоке.
ExecutorService – высокоуровневый API для управления пулом потоков.
Future – представляет результат асинхронной задачи.
Callable – аналог Runnable, но с возвращаемым значением.
Handler (Android) – для коммуникации между потоками (например, UI и фоновым).
AsyncTask (устарел) – упрощал работу с UI из фонового потока.

Пример с ExecutorService:

ExecutorService executor = Executors.newFixedThreadPool(2);
executor.submit(() -> {
    // Фоновая задача
});
executor.shutdown();