大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 告訴你實現可重入鎖的原理

告訴你實現可重入鎖的原理

更新時間:2022-10-28 10:20:09 來源:動力節點 瀏覽1762次

實現可重入鎖的原理是什么?動力節點小編來告訴你。可重入鎖的原理:判斷當前線程是否是持有鎖的線程,如果是則無需要wait(),如果不是則等待持有鎖的線程釋放!

/*可重入鎖的實現
* 加鎖其實就是讓其他線程等待*/
public class testLock{
    Lock lock=new Lock();
    public void a() throws InterruptedException {
     lock.lock();
     b();
     lock.unlock();
    }
    public void b() throws InterruptedException {
        lock.lock();
        System.out.println("進入第二級方法");
        lock.unlock();
    }
    public static void main(String[] args) throws InterruptedException {
        testLock t=new testLock();
        t.a();
    }
}
class Lock{
    private boolean isLocked=false;
    private Thread Lockedby=null;//當前被鎖的線程
    private int holdCount;//當前線程持有鎖的計數器
     public synchronized void lock() throws InterruptedException {
         while(isLocked&&Lockedby!=Thread.currentThread()){//標志位isLocked為ture,代表已有線程持有鎖,且當前線程不是持有鎖的線程,則等待鎖釋放
             wait();
         }
         isLocked=true;
         Lockedby=Thread.currentThread();
         holdCount++;
     }
     public synchronized void unlock(){
         if(Thread.currentThread()==Lockedby){//當前持有鎖的線程調用該方法
         holdCount--;
         if(holdCount==0){//當前線程釋放了全部鎖的時候,才喚醒其他調用lock方法被鎖定的線程
             isLocked=false;
         notify();}}
     }
    public int getHoldCount() {//得到鎖計數器,為了得到當前線程持有了幾個鎖
        return holdCount;
    }
}

 

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 亚洲性生活视频 | 国产精品成人一区二区不卡 | 国产在线麻豆精品 | 色综合久久婷婷天天 | 欧美成人免费观看久久 | 亚洲免费片 | 奇米色第四色 | 射婷婷| 国产欧美日韩综合精品一区二区 | 久久四虎 | 国产精品66在线观看 | 伊人久久五月天 | 热玖玖| 爱爱毛片 | 国产日产精品久久久久快鸭 | 亚洲国产成人久久笫一页 | 日韩成人黄色片 | 黄页在线播放网址 | 国产亚洲精品资源一区 | 欧美日韩精选 | 亚洲色无码播放 | 免费高清在线爱做视频 | 色偷偷女人的天堂a在线 | 久久免费播放视频 | 在线亚洲日产一区二区 | 456性欧美欧美在线视频 | 女人18特级一级毛片免费视频 | 五月婷婷基地 | 一本影院| 久久青草网站 | 九九精品视频免费 | 一区二区三区www | 综合黄色 | 国产精品欧美日韩一区二区 | 欧美一级毛片免费播放器 | 久久线看观看精品香蕉国产 | 久久精品在这里 | 国产原创中文字幕 | 秋霞伊人 | japanese乱子欧美 | 色xxx |