併發程式設計基礎(二 lock體系)

2021-08-21 13:50:16 字數 493 閱讀 3701

一、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等硬體來提 用軟體的執行條件 一方面,它為應用軟體和使用者提供了操...

併發程式設計(二)

使得乙個物件在當前範圍之外可見。比如通過公開方法返回乙個物件的引用 通過類靜態變數公布物件.與之對應的是逸出,指不正確的發布物件,比如將乙個私有的物件發布出去,或者還沒有正確構造完成物件,此物件就已經對外部可見 共有四種方式安全地發布物件 在單例模式中,如何保證只例項化乙個物件並保證執行緒安全?下面...