天天看點

JDK1.8版本,java并發架構支援鎖包括

1、自旋鎖,自旋,jvm預設是10次,由jvm自己控制,for去争取鎖

2、阻塞鎖 被阻塞的線程,不會争奪鎖

3、可重入鎖,多次進入改鎖的域

4、讀寫鎖

5、互斥鎖,鎖本身就是互斥的

6、悲觀鎖,不相信這裡是安全的,必須全部上鎖

7、樂觀鎖,相信這裡是安全的

8、公平鎖,有優先級的鎖

9、非公平鎖,無優先級的鎖

10、偏向鎖,無競争不鎖,有競争挂起,轉為輕量鎖

11、對象鎖,鎖住對象

12、線程鎖

13、鎖粗化  ,多鎖變成一個,自己處理

14、輕量級鎖 ,CAS實作

15、鎖消除 ,偏向鎖就是鎖消除的一種

16、鎖膨脹 , jvm實作,鎖粗化

17、信号量,使用阻塞鎖實作的一種政策

18、排他鎖(不包含),X鎖,若事務T對資料對象A加上x鎖,則隻允許T讀取和修改A,其他任何事務都不能再對A加任何類型的鎖,直到T釋放A上的鎖。這就保證了其他事務在T釋放A上的鎖之前不能再讀取和修改A