Synchronized和Lock區別

類別 synchronized LOCK
存在層次 Java的關鍵字,在jvm層面上 是一個類
鎖的釋放 ①獲取鎖的線程執行完同步代碼,釋放鎖;②線程執行發生異常,jvm會讓線程釋放鎖 在finally中必須釋放鎖,不然容易造成死鎖
鎖的獲取 假設A線程獲取鎖,B線程等待。如果A線程阻塞,B線程會一直等待 分情況而定,LOCK有多個獲取鎖的方式,大致就是嘗試獲得鎖,線程可以不用一直等待
鎖的狀態 無法判斷 可以判斷
鎖類型 可重入 不可中斷 非公平 可重入 可中斷 可公平(兩者皆可)
性能 少量同步 大量同步
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章