2013-11-22 4 views
1

Я имею в виду по следующей ссылке: http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/locks/ReentrantLock.htmlReentrantLock класс в Java

Может кто-нибудь объяснить мне, что блокировка чтения делать. Предоставляет ли он доступ только для чтения для параллельных потоков для чтения и записи? Что касается блокировки записи, он предотвращает чтение и запись параллельных потоков до тех пор, пока они не будут разблокированы?

Я особенно смущен считывающим замком. Почему и когда я должен реализовать блокировку чтения, когда может возникнуть параллелизм.

+1

Возможно, вы имеете в виду ['ReentrantReadWriteLock'] (http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.html). Также см. [Java ReentrantReadWriteLocks - как безопасно получить блокировку записи?] (Http://stackoverflow.com/questions/464784/java-reentrantreadwritelocks-how-to-safely-acquire-write-lock) SO post. –

ответ

1

ReentrantLock является орудием для Lock интерфейса, он обеспечивает более гибкий способ, чем synchronized ключевого слова, и добавить функцию tryLock.

ReentrantReadWriteLock является исполнительным механизмом для интерфейса ReadWriteLock, этот класс обеспечивает решение проблемы с Reader-Writer.

Для блокировки записи это эксклюзивный замок, который предотвратит как чтение, так и запись потоков.

Для блокировки чтения он позволяет одновременно получать доступ к потокам считывателей и предотвращать поток записи, когда количество читателей больше нуля.

Смежные вопросы