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

Работал ли с Phaser

Phaser — это класс из пакета java.util.concurrent, который предоставляет гибкую синхронизацию потоков, аналогично CountDownLatch и CyclicBarrier, но с более динамичными возможностями.

Основные особенности:

  • Поддерживает динамическое изменение числа участников (register(), arriveAndDeregister()).
  • Позволяет разбивать выполнение на фазы (этапы).
  • Может ожидать завершения фазы (arriveAndAwaitAdvance()).

Пример:

java
Phaser phaser = new Phaser(3); // 3 участника  
new Thread(() -> {  
    phaser.arriveAndAwaitAdvance();  
    System.out.println("Thread 1 завершил фазу 1");  
}).start();  

new Thread(() -> {  
    phaser.arriveAndAwaitAdvance();  
    System.out.println("Thread 2 завершил фазу 1");  
}).start();  

phaser.arriveAndAwaitAdvance(); // Основной поток ждёт  
System.out.println("Все потоки завершили фазу 1");  

Используется в задачах, где количество потоков может меняться, например, в пошаговых симуляциях или многоэтапных обработках данных.

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

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

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

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