Встречается на собеседованиях • сегодня
Какие знаешь способы синхронизации потоков
В Java есть несколько механизмов синхронизации:
- synchronized – ключевое слово для блоков кода или методов. Гарантирует, что только один поток может выполнять синхронизированный блок/метод.
java
public synchronized void increment() {
counter++;
}- Lock – интерфейс из
java.util.concurrent.locks. Более гибкий, чемsynchronized, поддерживает таймауты и прерывания.
java
Lock lock = new ReentrantLock();
lock.lock();
try {
// критическая секция
} finally {
lock.unlock();
}- Atomic-классы (
AtomicInteger,AtomicReferenceи др.) – обеспечивают атомарные операции без блокировок.
java
AtomicInteger counter = new AtomicInteger(0);
counter.incrementAndGet();-
Semaphore – ограничивает количество потоков, которые могут получить доступ к ресурсу.
-
CountDownLatch/CyclicBarrier – позволяют потокам ждать друг друга.
-
volatile – гарантирует видимость изменений переменной для всех потоков, но не обеспечивает атомарность сложных операций.
Выбор зависит от конкретной задачи: synchronized проще, Lock гибче, атомарные классы эффективнее для простых операций.

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