Back to questions
Junior — Middle
66
Можешь назвать основные примитивы и инструменты, предоставляемые в пакете java.util.concurrent для организации многопоточного исполнения?
Companies where asked
айтеко
Answer from AI
sobes.tech AI
В пакете java.util.concurrent есть несколько ключевых примитивов и инструментов для организации многопоточного исполнения:
- Executor и ExecutorService — интерфейсы для управления пулом потоков и асинхронным выполнением задач.
- Future и CompletableFuture — для получения результата асинхронных вычислений.
- CountDownLatch — позволяет одному или нескольким потокам ждать, пока другие потоки выполнят определённые действия.
- CyclicBarrier — синхронизирует несколько потоков, заставляя их ждать друг друга.
- Semaphore — ограничивает количество потоков, которые могут одновременно получить доступ к ресурсу.
- ReentrantLock — расширенный механизм блокировки с возможностью попытки захвата и таймаутом.
- Concurrent Collections (например, ConcurrentHashMap, CopyOnWriteArrayList) — потокобезопасные коллекции.
- Atomic Variables (AtomicInteger, AtomicLong и др.) — для атомарных операций над переменными без использования блокировок.
Пример использования ExecutorService:
ExecutorService executor = Executors.newFixedThreadPool(2);
executor.submit(() -> {
System.out.println("Задача выполнена в отдельном потоке");
});
executor.shutdown();