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

Какие знаешь примитивы в библиотеке java.util.concurrent

В Java java.util.concurrent предоставляет несколько примитивов для синхронизации:

  1. Semaphore – ограничивает количество потоков, которые могут получить доступ к ресурсу.
    java
    Semaphore semaphore = new Semaphore(3); // максимум 3 потока
    semaphore.acquire(); // захват
    semaphore.release(); // освобождение
  1. CountDownLatch – позволяет потокам ждать, пока счетчик не достигнет нуля.

    java
    CountDownLatch latch = new CountDownLatch(3);
    latch.countDown(); // уменьшает счетчик
    latch.await(); // блокирует, пока счетчик != 0
  2. CyclicBarrier – синхронизирует группу потоков в определенной точке.

    java
    CyclicBarrier barrier = new CyclicBarrier(3);
    barrier.await(); // блокирует, пока все 3 потока не вызовут await()
  3. Phaser – гибкий аналог CyclicBarrier с динамическим числом участников.

  4. Exchanger – обмен данными между двумя потоками в точке встречи.

Эти примитивы помогают управлять многопоточностью без низкоуровневых блокировок (synchronized).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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