Встречается на собеседованиях • сегодня

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

В Java для многопоточности есть несколько ключевых классов и интерфейсов: 1. **Thread** – базовый класс для создания потоков. ```java Thread thread = new Thread(() -> System.out.println("Running")); thread.start(); ``` 2. **Runnable** – интерфейс для определения задачи, выполняемой в потоке. ```java Runnable task = () -> System.out.println("Task running"); new Thread(task).start(); ``` 3. **Callable** – аналог `Runnable`, но возвращает результат и может выбрасывать исключения. Используется с `ExecutorService`. 4. **ExecutorService** – интерфейс для управления пулами потоков. ```java ExecutorService executor = Executors.newFixedThreadPool(2); executor.submit(() -> System.out.println("Executed")); executor.shutdown(); ``` 5. **Future** – представляет результат асинхронной операции (возвращается `ExecutorService.submit()`). 6. **Synchronized коллекции** – `Collections.synchronizedList()`, `ConcurrentHashMap` и др. 7. **Lock и Condition** – альтернатива `synchronized` с большей гибкостью (`ReentrantLock`, `ReadWriteLock`). 8. **Atomic-классы** (`AtomicInteger`, `AtomicReference`) – для атомарных операций без блокировок. 9. **CountDownLatch, CyclicBarrier, Semaphore** – синхронизаторы из `java.util.concurrent`. Пример с `Callable` и `Future`: ```java ExecutorService executor = Executors.newSingleThreadExecutor(); Future future = executor.submit(() -> 42); System.out.println(future.get()); // 42 executor.shutdown(); ```
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы