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

Какие знаешь инструменты для многопоточной работы

В Java есть несколько инструментов для многопоточной работы: 1. **Thread/Runnable** – базовые классы для создания потоков. ```java new Thread(() -> System.out.println("Running")).start(); ``` 2. **ExecutorService** – пулы потоков (FixedThreadPool, CachedThreadPool и др.). ```java ExecutorService executor = Executors.newFixedThreadPool(4); executor.submit(() -> task()); ``` 3. **Future/Callable** – асинхронное выполнение с возвратом результата. ```java Future future = executor.submit(() -> 42); ``` 4. **CompletableFuture** – асинхронные цепочки с колбэками. ```java CompletableFuture.supplyAsync(() -> "Hello") .thenApplyAsync(s -> s + " World"); ``` 5. **ForkJoinPool** – для рекурсивного параллелизма (например, в Stream API). 6. **Concurrent Collections** – `ConcurrentHashMap`, `CopyOnWriteArrayList` и др. 7. **Synchronized/Locks** – `synchronized`, `ReentrantLock`, `ReadWriteLock`. 8. **Atomic-классы** – `AtomicInteger`, `AtomicReference` и др. для lock-free операций. 9. **Stream API (parallelStream)** – параллельная обработка коллекций. ```java list.parallelStream().map(x -> x * 2).toList(); ``` 10. **Reactive (RxJava, Project Reactor)** – реактивные потоки.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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