JavaTM 2 Platform
Standard Ed. 6

軟體套件 java.util.concurrent.locks

為鎖和等待條件提供一個框架的介面和類別,它不同於內置同步和監視器。

請參見:
          描述

介面摘要
Condition ConditionObject 監視器方法(waitnotifynotifyAll)分解成截然不同的物件,以便通過將這些物件與任意 Lock 實作組合使用,為每個物件提供多個等待 set(wait-set)。
Lock Lock 實作提供了比使用 synchronized 方法和語句可獲得的更廣泛的鎖定操作。
ReadWriteLock ReadWriteLock 維護了一對相關的,一個用於只讀操作,另一個用於寫入操作。
 

類別摘要
AbstractOwnableSynchronizer 可以由執行緒以獨佔方式擁有的同步器。
AbstractQueuedLongSynchronizer long 形式維護同步狀態的一個 AbstractQueuedSynchronizer 版本。
AbstractQueuedSynchronizer 為實作依賴於先進先出 (FIFO) 等待佇列的阻塞鎖和相關同步器(信號量、事件,等等)提供一個框架。
LockSupport 用來創建鎖和其他同步類別的基本執行緒阻塞原語。
ReentrantLock 一個可重入的互斥鎖 Lock,它具有與使用 synchronized 方法和語句所存取的隱式監視器鎖相同的一些基本行為和語義,但功能更強大。
ReentrantReadWriteLock 支持與 ReentrantLock 類似語義的 ReadWriteLock 實作。
ReentrantReadWriteLock.ReadLock ReentrantReadWriteLock.readLock() 方法返回的鎖。
ReentrantReadWriteLock.WriteLock ReentrantReadWriteLock.writeLock() 方法返回的鎖。
 

軟體套件 java.util.concurrent.locks 的描述

為鎖和等待條件提供一個框架的介面和類別,它不同於內置同步和監視器。該框架允許更靈活地使用鎖和條件,但以更難用的語法為代價。

Lock 介面支持那些語義不同(重入、公平等)的鎖規則,可以在非阻塞式結構的上下文(包括 hand-over-hand 和鎖重排演算法)中使用這些規則。主要的實作是 ReentrantLock

ReadWriteLock 介面以類似方式定義了一些讀取者可以共享而寫入者獨佔的鎖。此套件只提供了一個實作,即 ReentrantReadWriteLock,因為它適用於大部分的標準用法上下文。但開發人員可以創建自己的、適用於非標準要求的實作。

Condition 介面描述了可能會與鎖有關聯的條件變數。這些變數在用法上與使用 Object.wait 存取的隱式監視器類似,但提供了更強大的功能。需要特別指出的是,單個 Lock 可能與多個 Condition 物件關聯。為了避免相容性問題,Condition 方法的名稱與對應的 Object 版本中的不同。

AbstractQueuedSynchronizer 類別是一個非常有用的父級類別,可用來定義鎖以及依賴於排隊阻塞執行緒的其他同步器。 AbstractQueuedLongSynchronizer 類別提供相同的功能但擴展了對同步狀態的 64 位的支持。兩者都擴展了類別 AbstractOwnableSynchronizer(一個說明記錄當前保持獨佔同步的執行緒的簡單類別)。LockSupport 類別提供了更低層級別的阻塞和解除阻塞支持,這對那些實作自己的定制鎖類別的開發人員很有用。

從以下版本開始:
1.5

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only