Встречается на собеседованиях • сегодня
Какие знаешь реализации синхронного взаимодействия
В Java есть несколько способов реализовать синхронное взаимодействие:
-
Synchronized методы/блоки
Используется ключевое словоsynchronizedдля блокировки доступа к общему ресурсу:javapublic synchronized void increment() { counter++; } -
ReentrantLock
Более гибкая альтернативаsynchronized:javaLock lock = new ReentrantLock(); lock.lock(); try { // критическая секция } finally { lock.unlock(); }
-
CountDownLatch
Позволяет потокам ждать завершения операций:javaCountDownLatch latch = new CountDownLatch(1); new Thread(() -> { // работа latch.countDown(); }).start(); latch.await(); -
CyclicBarrier
Синхронизирует группу потоков в определенной точке:javaCyclicBarrier barrier = new CyclicBarrier(3); // потоки будут ждать друг друга -
Semaphore
Ограничивает количество потоков, которые могут получить доступ к ресурсу:javaSemaphore semaphore = new Semaphore(3); semaphore.acquire(); // работа semaphore.release();
Каждый механизм подходит для разных сценариев: synchronized для простых случаев, ReentrantLock для гибкости, CountDownLatch/CyclicBarrier для координации потоков, Semaphore для ограничения доступа.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы