2013-11-22 19 views
1

我指的是以下鏈接:http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/locks/ReentrantLock.html的ReentrantLock類在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帖子。 –

回答

1

ReentrantLock是一個工具爲Lock接口,它提供了比​​關鍵字更靈活的方式,並添加了tryLock函數。

ReentrantReadWriteLock是一個用於ReadWriteLock接口的工具,該類爲讀寫器問題提供了一個解決方案。

對於寫入鎖,它是一個排它鎖,它將阻止讀取和寫入線程。

對於讀取鎖,它允許乘法讀取器線程同時訪問,並在讀取器數量大於零時阻止寫入器線程。