- 從線程是否需要鎖定同步資源,分爲
樂觀鎖(互斥同步鎖)
– 可以簡單理解爲通常需要版本號控制
– 舉例:如git push
– 適合:併發多讀少寫的情況
悲觀鎖(非互斥同步鎖)
– 修改數據時把數據鎖住別的線程無法訪問改變
– 缺點:可能會導致永久阻塞
– 舉例:如數據庫select xxx for update
–適合:臨界區有IO操作、代碼複雜、競爭激烈,併發多寫入,避免大量自旋鎖消耗。 - 多線程下是否可以共享一把鎖,分爲
共享鎖
獨佔鎖 - 多線程下是否需要排隊,分爲
公平鎖
非公平鎖 - 等待資源是是否自阻塞,分爲
自旋鎖
非自旋鎖 - 同一個線程是否可以重複獲得一把鎖,分爲
可重複鎖
不可重複鎖 - 是否可中斷
可中斷鎖
不可中斷鎖
鎖的分類
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
python刷題Leetcode1-30
yahuuu
2020-07-08 07:41:49
leetcode shell部分刷題
第十行 給定一個文本文件 file.txt,請只打印這個文件中的第十行。 awk 'NR==10' file.txt
yahuuu
2020-07-08 07:41:49
leetcode.100-200
yahuuu
2020-07-08 07:41:49
一文講透“進程,線程和協程”
雲棲號資訊小哥
2020-08-05 15:37:51
連續 3 年最受歡迎:Rust,香!
雲棲號資訊小編
2020-07-21 13:01:52
Python初學者的自我修養,找到自己的方向
雲棲號資訊小哥
2020-07-16 15:19:52
java多線程方式導入excel數據入數據庫
weixin_42982636
2020-07-08 11:21:30
Linux C/C++編程之(十七)進程間通信
我是管小亮
2020-07-08 10:47:44
6.4 ThreadPoolExecutor線程池的關閉方法shutdown和shutdownNow區別、示例
一点光辉
2020-07-08 10:46:31
linux下的線程池的實現
xiyuan255
2020-07-08 10:33:42
多線程輪流交替執行三種實現方法
沐雨金鳞
2020-07-08 10:30:45
想要職級到P7,啃完這946頁阿里P8面試官都說詳細的神仙文檔足矣
mrchaochao
2020-07-08 10:00:46
多線程Syschronized
qq_43516647
2020-07-08 09:39:18