顧名思義,reentrantlock是重入鎖。它實現了lock介面,是基於aqs(一種用於構建同步器的框架)構造出來的一種同步器。
同synchronized一樣,reentrantlock也是可重入的,與synchronized相比增加了一些高階功能,主要有以下三項:等待可中斷、可實現公平鎖、鎖可以繫結多個條件
雖然reentrantlock有很多優點,但synchronized有它獨特的優勢:
圖中所示的fairsync即為reentrantlock的公平鎖實現,而nonfairsync為非公平鎖實現。二者都繼承了名為sync的內部內,至於細節是如何實現的,這就涉及到了aqs模板類了。
ReentrantLock 的簡單分析
reentantlock繼承介面lock並實現了介面中定義的方法,他是一種可重入鎖,除了能完 成synchronized所能完成的所有工作外,還提供了諸如可響應中斷鎖 可輪詢鎖請求 定時鎖等 避免多執行緒死鎖的方法。void lock 執行此方法時,如果鎖處於空閒狀態,當前執行緒將獲取到鎖.相反,如...
ReentrantLock實現同步
reentrantlock 也可以實現synchronized方法 塊的同步效果。reentrantlock 實現同步 如下 1 新建乙個service類 public class myservice public static void methodb 2 新建乙個測試類 public class...
ReentrantLock之unlock方法分析
public void unlock public final boolean release int arg return false release 1 嘗試在當前鎖的鎖定計數 state 值上減1。成功返回true,否則返回false。當然在release 方法中不僅僅只是將state 1這麼...