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

Какие типы блокировок используются в многопоточности

В Java основные типы блокировок:

  1. Неявные (встроенные) - синхронизация через synchronized:
java
synchronized(obj) {
    // critical section
}
  1. Явные блокировки из java.util.concurrent.locks:
  • ReentrantLock - повторно входимая блокировка с возможностью честного доступа
  • ReadWriteLock - разделяет блокировки на чтение и запись
  • StampedLock - оптимизированная блокировка с поддержкой оптимистичного чтения

Пример с ReentrantLock:

java
Lock lock = new ReentrantLock();
lock.lock();
try {
    // critical section
} finally {
    lock.unlock();
}
  1. Атомарные операции через Atomic-классы (CAS-операции)

  2. Координационные - Semaphore, CountDownLatch, CyclicBarrier

Основные различия: synchronized проще, но менее гибок. Явные блокировки дают больше контроля (таймауты, прерывания), но требуют ручного управления.

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

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

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

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