jdk中的鎖分爲兩種:synchronized關鍵字和lock接口。
synchronized原理涉及三種鎖概念:偏向鎖、輕量級鎖、重量級鎖,本質是個鎖升級(膨脹)的過程,由此保證了synchronized關鍵字當前的高性能。
偏向鎖:若對象只有1個線程請求,將鎖直接分配給該線程;
輕量級鎖:若對象有2個線程請求,線程競爭時的等待使用cas(自旋鎖、樂觀鎖的概念);
重量級鎖:若對象被2個以上的線程請求,出現競爭時將阻塞等待中的線程;
lock接口的原理是工具:aqs(隊列同步器),aqs的三個組成部分:狀態、隊列、cas,lock接口的實現類包括:重入鎖、讀寫鎖,涉及到鎖的概念:公平/非公平鎖、共享/排他鎖。
公平鎖:由隊列實現,保證公平性;
重入鎖:由狀態實現;
jdk中的鎖
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
被鄙視做不出3D效果的一天
UI設計點兒3D效果,切圖片後給前端用,前端按照圖片做出靜態效果,結果項目上不滿意。沒錯是我太菜了,菜的一批。 心裏已經燃起學習three.js的慾望。
CherryLee_1210
2020-07-08 12:31:12
opencv 加載tensorflow pb模型
koibiki
2020-07-08 12:23:28
Redis 數據持久化方案
乾源
2020-07-08 12:09:41
GitHub中常用高頻操作
不如烂笔头
2020-07-08 11:54:44
a標籤中使用onclick提示function未定義
Ro0k1e
2020-07-08 11:27:27
MCU初始化流程——從上電到main()之間
說明: 以下介紹示例的MCU地址空間如下: ROM空間爲:0x0000 0000 – 0x0000 8000 RAM空間爲:0x2000 0000 – 0x2000 2000
jltsun
2020-07-08 11:00:06
C語言實現的json解析程序
lindorx
2020-07-08 10:35:53
手機驗證碼60s等待
OileDie
2020-07-08 10:28:07
ios7 xib 適配
李鸿鸣
2020-07-08 10:22:45
smtplib Python發送郵件
海啦啦喽
2020-07-08 09:49:38
react生命週期函數 出場順序-應用場景
海啦啦喽
2020-07-08 09:49:38
Linux Python Flask Nginx Gunicorn MySQL Online
海啦啦喽
2020-07-08 09:49:25