java中常見的鎖有:1.樂觀鎖;2.悲觀鎖;3.自旋鎖;4.偏向鎖;5.公平鎖;
java中常見的鎖有以下幾種
1.樂觀鎖
java中樂觀鎖是一種樂觀思想,總認為資源和數據不會被修改,并不會對數據進行上鎖,但進行寫入操作的時會判斷數據是否被修改。
2.悲觀鎖
java中悲觀鎖是一種悲觀思想,總認為會出現最壞的情況,會在持有數據的時將資源或數據鎖住,導致其他線程需要請求資源時會造成阻塞。
3.自旋鎖
java中自旋鎖是指當一個線程在獲取鎖時,若鎖已被其它線程獲取,該線程將會循環等待,直到獲取到鎖才會退出循環。
4.偏向鎖
java中偏向鎖是指一段同步代碼一直被一個線程訪問,那么該線程會自動獲取鎖,從而降低獲取鎖的代價。
5.公平鎖
java中公平鎖是指多個線程按照申請鎖的順序來獲取鎖,只有線程進入隊列排隊,且隊列中的第一個線程才可以獲得鎖。