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:没有银弹)及原理 

待我写完,重新放链接

 

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