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

Как работает ReadWriteLock

ReadWriteLock в Java позволяет разделять доступ к ресурсу между читателями и писателями. Читатели могут работать параллельно, но писатель требует эксклюзивного доступа.

Основные методы:

  • readLock() – блокировка для чтения (может быть захвачена несколькими потоками)
  • writeLock() – блокировка для записи (эксклюзивная)

Пример:

java
ReadWriteLock lock = new ReentrantReadWriteLock();

void readData() {
    lock.readLock().lock();
    try {
        // чтение данных
    } finally {
        lock.readLock().unlock();
    }
}

void writeData() {
    lock.writeLock().lock();
    try {
        // запись данных
    } finally {
        lock.writeLock().unlock();
    }
}

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

  • Приоритет у писателей (зависит от реализации, например, ReentrantReadWriteLock может быть fair/non-fair).
  • Реентерабельность: поток может повторно захватывать блокировку.
  • Нельзя повышать read-lock до write-lock (вызовет deadlock).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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