Sobes.tech
Назад к вопросам
Junior — Middle
67

Можешь назвать основные примитивы и инструменты, предоставляемые в пакете java.util.concurrent для организации многопоточного исполнения?

Компании, где спрашивали
айтеко

Ответ от нейросети

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();