|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjava.util.concurrent.locks.ReentrantReadWriteLock.ReadLock
public static class ReentrantReadWriteLock.ReadLock
ReentrantReadWriteLock.readLock() 方法返回的鎖。
| 建構子摘要 | |
|---|---|
protected |
ReentrantReadWriteLock.ReadLock(ReentrantReadWriteLock lock)
子類別使用的建構子 |
| 方法摘要 | |
|---|---|
void |
lock()
獲取讀取鎖。 |
void |
lockInterruptibly()
獲取讀取鎖,除非當前執行緒被中斷。 |
Condition |
newCondition()
因為 ReadLocks 不支持條件,所以將拋出 UnsupportedOperationException。 |
String |
toString()
返回標識此鎖及其鎖狀態的字元串。 |
boolean |
tryLock()
僅當寫入鎖在調用期間未被另一個執行緒保持時獲取讀取鎖。 |
boolean |
tryLock(long timeout,
TimeUnit unit)
如果另一個執行緒在給定的等待時間內沒有保持寫入鎖,並且當前執行緒未被中斷,則獲取讀取鎖。 |
void |
unlock()
試圖釋放此鎖。 |
| 從類別 java.lang.Object 繼承的方法 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| 建構子詳細資訊 |
|---|
protected ReentrantReadWriteLock.ReadLock(ReentrantReadWriteLock lock)
lock - 外部鎖物件
NullPointerException - 如果 lock 為 null| 方法詳細資訊 |
|---|
public void lock()
如果另一個執行緒沒有保持寫入鎖,則獲取讀取鎖並立即返回。
如果另一個執行緒保持該寫入鎖,出於執行緒排程目的,將禁用當前執行緒,並且在獲取讀取鎖之前,該執行緒將一直處於休眠狀態。
Lock 中的 lock
public void lockInterruptibly()
throws InterruptedException
如果另一個執行緒沒有保持寫入鎖,則獲取讀取鎖並立即返回。
如果另一個執行緒保持了該寫入鎖,出於執行緒排程目的,將禁用當前執行緒,並且在發生以下兩種情況之一以前,該執行緒將一直處於休眠狀態:
如果當前執行緒:
InterruptedException,並且清除當前執行緒的已中斷狀態。
在此實作中,因為此方法是一個顯式中斷點,所以要優先考慮回應中斷,而不是回應鎖的普通獲取或重入獲取。
Lock 中的 lockInterruptiblyInterruptedException - 如果當前執行緒是已中斷的。public boolean tryLock()
如果另一個執行緒沒有保持寫入鎖,則獲取讀取鎖並立即返回 true 值。即使已將此鎖設置為使用公平排序策略,但是調用 tryLock() 仍將 立即獲取讀取鎖(如果有可用的),不管其他執行緒當前是否正在等待該讀取鎖。在某些情況下,此“闖入”行為可能很有用,即使它會打破公平性也如此。如果希望遵守此鎖的公平設置,則使用 tryLock(0, TimeUnit.SECONDS) ,它幾乎是等效的(它也檢測中斷)。
如果寫入鎖被另一個執行緒保持,則此方法將立即返回 false 值。
Lock 中的 tryLocktrue
public boolean tryLock(long timeout,
TimeUnit unit)
throws InterruptedException
如果另一個執行緒沒有保持寫入鎖,則獲取讀取鎖並立即返回 true 值。如果已經設置此鎖使用公平的排序策略,並且其他執行緒都在等待該鎖,則不會 獲取一個可用的鎖。這與 tryLock() 方法相反。如果想使用一個允許闖入公平鎖的定時 tryLock,那麼可以將定時形式和不定時形式組合在一起:
if (lock.tryLock() || lock.tryLock(timeout, unit) ) { ... }
如果寫入鎖被另一個執行緒保持,則出於執行緒排程目的,禁用當前執行緒,並且在發生以下三種情況之一以前,該執行緒將一直處於休眠狀態:
如果獲得了讀取鎖,則返回 true 值。
如果當前執行緒:
InterruptedException,並且清除當前執行緒的已中斷狀態。
如果超出了指定的等待時間,則返回值為 false。如果該時間小於等於 0,則此方法根本不會等待。
在此實作中,因為此方法是一個顯式中斷點,所以要優先考慮回應中斷,而不是回應鎖的普通獲取或重入獲取,或者報告所用的等待時間。
Lock 中的 tryLocktimeou - 等待讀取鎖的時間unit - timeout 參數的時間單位
true。
InterruptedException - 如果當前執行緒被中斷
NullPointerException - 如果時間單位為 nullpublic void unlock()
如果讀取者的數量目前為 0,則該鎖可用於寫入鎖嘗試。
Lock 中的 unlockpublic Condition newCondition()
ReadLocks 不支持條件,所以將拋出 UnsupportedOperationException。
Lock 中的 newConditionLock 實例的新 Condition 實例
UnsupportedOperationException - 總是如此public String toString()
"Read locks =",後跟讀取鎖的數量。
Object 中的 toString
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。