一、lock與sychronized的比較
(1)lock提供了基於api的可操作性,提供能響應中斷式獲取鎖,超時獲取鎖,及非阻塞式獲取鎖
(2)sychronized執行完同步塊及發生異常時會自動釋放鎖,lock要unlock釋放鎖
二、aqs
(1)設計意圖(模板方法設計模式)
1.aqs提供給同步組建使用者,為其遮蔽同步狀態的管理,執行緒排隊等底層操作
2.lock(同步元件)是面向使用者的,定義了介面,隱藏其使用的細節
(2)如何使用aqs建立自定義同步組建
1.重寫protect方法,告訴aqs如何判斷當前同步狀態是否獲取成功或者失敗
2.同步元件呼叫aqs的模板方法,同步其語義,而其提供的模板又會呼叫被重寫的方法
3.實現自定義同步元件時,推薦採用繼承aqs的靜態內部類
併發程式設計之深入理解Lock介面
寫乙個執行緒不安全的 public class unsafethread public static void main string args catch interruptedexception e countdownlatch.countdown start while true 這裡的cou...
併發程式設計基礎
從本質上來說,作業系統其實就是人為編寫的一種軟體,只不過它是一種操作計算機系統的軟體,所有的應用型軟體幾乎都要通過作業系統才能執行來執行功能,沒有不依靠作業系統就能執行功能的應用軟體 除非你真的很厲害,能夠自己操作相應的儲存器 cpu等硬體來提 用軟體的執行條件 一方面,它為應用軟體和使用者提供了操...
併發程式設計(二)
使得乙個物件在當前範圍之外可見。比如通過公開方法返回乙個物件的引用 通過類靜態變數公布物件.與之對應的是逸出,指不正確的發布物件,比如將乙個私有的物件發布出去,或者還沒有正確構造完成物件,此物件就已經對外部可見 共有四種方式安全地發布物件 在單例模式中,如何保證只例項化乙個物件並保證執行緒安全?下面...