ЧитатьWriteLock. Понимание обновления с readLock на writeLockJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 ЧитатьWriteLock. Понимание обновления с readLock на writeLock

Сообщение Anonymous »

Рассмотрим этот стандартный интерфейс JDK:

Код: Выделить всё

public interface ReadWriteLock{
public Lock readLock();
public Lock writeLock();
}
Б. Гетц в Java Concurrency на практике упомянул, что обновление с readLock на writeLock подвержено взаимоблокировкам.


Если два читателя одновременно пытаются перейти на блокировку записи ,
ни один из них не снимет блокировку чтения.


Меня смутило то, что это было два читателя пытаются обновиться. Но даже одного читателя достаточно, не так ли? Если устройство чтения пытается обновиться, блокировка чтения еще не снята. Попытка получить блокировку записи при сохраненной блокировке чтения приводит к тупику.

Поэтому, судя по этому, я думаю, что даже теоретически бессмысленно обеспечивать операцию обновления. Или, может быть, реализация может позаботиться об этом?

Подробнее здесь: https://stackoverflow.com/questions/370 ... -writelock
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»