成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

我們一起聊聊 Java 中的鎖

開發 前端
java中synchronized 關鍵字修飾的鎖為不可中斷鎖,一旦線程申請了鎖,需要等獲取鎖之后執行完畢邏輯后,不可以被中斷。

一、偏向鎖,輕量級鎖,重量級鎖

這三種鎖特指 synchronized 鎖的狀態,通過java對象的頭mark world 來標識鎖狀態。

偏向鎖 有時候我們加鎖了,但是實際上卻不存在競爭,所以沒必要上鎖,只要打個標識即可,這就是偏向鎖的思想。如果一個對象初始化后,還沒有任何線程來訪問它,它就是可偏向的,第一個線程來訪問它的時候,就把這個線程記錄下來,如果下次仍然是這個線程訪問,因為它是這個偏向鎖的擁有者,所以直接獲取鎖,開銷很小。

輕量級鎖 如果synchronized 是被java的多個線程交替訪問,不是同時競爭的,或者競爭的時間短,用CAS(Compare And Set)方式來輪詢獲取鎖,不用經過上下文切換,這種時候沒必要用重量級鎖。

輕量級鎖指原來是偏向鎖,這時候一個非偏向鎖擁有者的線程來訪問對象,那么這個偏向鎖就升級為輕量級鎖,即通過輪詢方式來獲取鎖,不用阻塞。

重量級鎖 對于競爭比較激烈的場景,采用輕量級鎖就需要等待很長時間的空轉,這時候適合用重量級鎖。它利用重量級鎖的同步機制實現,開銷比較大。

鎖升級

總結: 偏向鎖性能最好不用CAS操作,輕量級鎖利用CAS和自旋避免重量級操作,性能次之;重量級鎖利用系統實現,需要上下文切換,最終,性能最差。

二、可重入鎖/非可重入鎖

可重入鎖即獲取鎖的線程,不釋放鎖的情況下,可以再次獲取這個鎖。非可重入鎖即線程獲取鎖之后,只能釋放了鎖之后,才能再次獲取鎖。

ReentrantLock 即可重入鎖。

三、共享鎖、獨占鎖

共享鎖是可以同時被多個線程同時占有的鎖,獨占鎖即只能被一個線程所占有。我們常用的讀寫鎖,讀鎖屬于共享鎖,可以同時被多個線程占有,寫鎖屬于獨占鎖,只能被一個線程所占用。

四、公平鎖、非公平鎖

如果鎖已經被占用,后續要獲取鎖的線程就會等待,開始排隊,如果鎖被釋放后,等待時間最長的線程獲取鎖,這就是公平鎖,非公平鎖會在一定情況下準許插隊的情況。

五、悲觀鎖和樂觀鎖

悲觀鎖即在獲取資源之前,先獲取鎖,然后就進行操作,這樣保證其他想操作的線程因為沒有獲取鎖,所以無法操作。樂觀鎖,傾向于認為競爭不激烈,它不要求操作資源前先獲取鎖,而是直接用CAS操作,即更新的時候判斷值是不是原來獲取的值,如果是就直接修改(判斷和更改是原子操作),如果不是就重試,在不獨占的時候就完成了資源的修改。

六、自旋鎖和非自旋鎖

自旋鎖的理念是如果線程拿不到鎖,不會阻塞或釋放 CPU 資源而是采用循環等待的方式,不斷獲取鎖,這種方式即為自旋,我理解即為不停止循環判斷鎖是否釋放了;非自旋鎖,如果沒有獲取鎖,則會進入阻塞或做其他事情。

七、可中斷鎖和不可中斷鎖

java中synchronized 關鍵字修飾的鎖為不可中斷鎖,一旦線程申請了鎖,需要等獲取鎖之后執行完畢邏輯后,不可以被中斷。 ReentrantLock 即可中斷鎖,在獲取鎖的過程中,可以被中斷,不用必須等待其他線程釋放鎖后,再獲取鎖。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2025-03-27 02:00:00

SPIJava接口

2022-07-29 08:17:46

Java對象內存

2023-08-10 08:28:46

網絡編程通信

2023-08-04 08:20:56

DockerfileDocker工具

2023-06-30 08:18:51

敏捷開發模式

2022-05-24 08:21:16

數據安全API

2023-09-10 21:42:31

2022-10-08 00:00:05

SQL機制結構

2023-10-26 08:38:43

SQL排名平分分區

2023-04-26 07:30:00

promptUI非結構化

2024-02-20 21:34:16

循環GolangGo

2021-08-27 07:06:10

IOJava抽象

2023-11-10 08:04:43

Java 17Java 11JDK

2023-08-02 08:35:54

文件操作數據源

2025-04-11 00:05:49

RPC底層分布式

2022-09-08 08:50:17

SSDOracleCPU

2024-09-09 08:53:56

2024-06-14 09:32:12

2023-03-26 23:47:32

Go內存模型

2024-07-26 09:47:28

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本国产欧美 | 在线观看免费高清av | 久久综合一区 | 黄色小视频入口 | 日本h片在线观看 | 久草免费电影 | 中文日本在线 | 亚洲综合视频 | 91精品一区| 久草成人 | 久久免费精彩视频 | 日本精品久久 | 成人精品鲁一区一区二区 | 91精品一区 | 新91| 日韩 欧美 二区 | 欧美一级三级在线观看 | 国产成人免费视频网站高清观看视频 | 日韩高清不卡 | 日韩视频一区在线观看 | 91大神在线资源观看无广告 | 国产成人综合网 | 中文字幕精品一区 | 99欧美精品 | av黄色在线 | 久久久久国产一区二区三区四区 | 亚洲欧美日韩一区二区 | 97精品超碰一区二区三区 | 完全免费在线视频 | 中文字幕乱码一区二区三区 | 一级片在线观看视频 | 日韩在线视频播放 | 91污在线 | 精品久久久久久亚洲精品 | 精品视频成人 | 亚洲九九精品 | 欧美久久久久久久 | 亚洲欧美激情精品一区二区 | 日韩欧美视频 | 日韩av在线不卡 | 国产精品久久久久久久久大全 |