java 鎖,入門新手

java 鎖,入門新手

  1. 鎖是什麼?

遊戲場景:

要想進高老莊高小姐的閨房,必須持有繡球一個,衆武俠誰拿到繡球誰才進去,進去出來後,繡球可以重新被搶

閨房每個人都能進可以認爲是 多線程的共享資源,衆俠客就是 多線程,繡球 就是 鎖  (ps:閉上眼想一下)

 

2.java裏面的鎖有哪些?

java 裏面的場景和以上所說相似,所以設計了兩套方案.(小聲嘀咕:爲啥兩套)

(1)基於jvm 控制對象的synchronized 關鍵字

使用:1.同步代碼塊  2.同步方法 

(2)基於AQS 的Lock

ReentrantLock重入鎖(不公平鎖),ReentrantLock(true)公平鎖,ReentrantReadWriteLock讀寫鎖,StampedLockt特殊調整版讀寫鎖

2.怎麼使用

(1)synchronized

使用最簡單,最方便,加方法名,寫成代碼塊

不動手!!! 老子教不會的哦! 自己敲一遍

(2)Lock

new 一個lock  ,多線程控制該鎖,標準寫法:

lock.lock();

try{
    
}catch (Exception e){}finally {
   lock.unlock(); 
}

3.使用心得

(1)注意鎖保護的資源是不是被多線程訪問的資源

很多新手瞎用,一會new一個對象出來,被訪問,還說加鎖不生效,親,你家的鎖只有一個線程訪問啊

(2)建議多寫幾個test代碼,跑一下,自己理解下,眼高手低,看是看不會的 親

idea 建立項目,跑demo test,專用 鏈接地址:https://blog.csdn.net/m0_37849875/article/details/100878721

(3)具體每一個鎖相關使用模板(ps:沒有銀彈)及原理 

待我寫完,重新放鏈接

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章