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

Какие синхронизаторы использовал

В Java есть несколько встроенных синхронизаторов из пакета `java.util.concurrent`: 1. **Semaphore** – ограничивает количество потоков, которые могут получить доступ к ресурсу. ```java Semaphore semaphore = new Semaphore(3); // максимум 3 потока semaphore.acquire(); // захватывает разрешение semaphore.release(); // освобождает ``` 2. **CountDownLatch** – позволяет потокам ждать, пока счетчик не достигнет нуля. ```java CountDownLatch latch = new CountDownLatch(3); latch.countDown(); // уменьшает счетчик latch.await(); // ждет обнуления ``` 3. **CyclicBarrier** – синхронизирует группу потоков в определенной точке. ```java CyclicBarrier barrier = new CyclicBarrier(3); barrier.await(); // ждет, пока все 3 потока дойдут сюда ``` 4. **Phaser** – гибкий аналог `CyclicBarrier` с динамическим числом участников. ```java Phaser phaser = new Phaser(3); phaser.arriveAndAwaitAdvance(); // синхронизация фаз ``` 5. **Exchanger** – обмен данными между двумя потоками. ```java Exchanger exchanger = new Exchanger<>(); String data = exchanger.exchange("Data"); // блокируется до обмена ``` Использовал их для управления конкурентным доступом, координации потоков и синхронизации выполнения задач.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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