<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 110, comments - 101, trackbacks - 0, articles - 7
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
    public synchronized void methodA(int a, int b);

    public synchronized void methodB(int a){
    methodA(a, 0);
    }

    這樣的代碼是成立的,一個線程對同一個對象的鎖可以反復(fù)獲取。這種同步鎖稱為可重入的鎖。
    加在非static方法上的synchronized方法是和synchronized(this)塊等價的,均為對象鎖,即對this加鎖。
    獲得當(dāng)前對象鎖的線程,可以繼續(xù)獲得當(dāng)前對象鎖,JVM負(fù)責(zé)跟蹤對象被加鎖的次數(shù)。線程運行B方法,此時如果this鎖可以用,線程獲得該鎖,線程給對象加鎖,計數(shù)器變成1,然后B方法調(diào)用A方法,由于是對同一個對象同一個線程,線程可以繼續(xù)獲得鎖,計數(shù)器變?yōu)?,表示this被加鎖2次。A方法完畢后,線程釋放鎖,計數(shù)器變?yōu)?,此時對象鎖對其他線程依然是不可獲得的。B方法完畢后,線程繼續(xù)釋放鎖,此時計數(shù)器變?yōu)?,表示鎖被完全釋放,其他線程可以獲得對象鎖。

    public synchronized void methodA(int a, int b){

    }


    public synchronized void methodB(int a, int b){

    }

    以上兩方法在同一實例對象上是互斥的,synchronized 加在方法上 即對this加鎖,因此在同一實例對象上 兩方法是互斥的。



    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 久久久久亚洲国产AV麻豆| 国产精品免费综合一区视频| 特级毛片aaaa免费观看| 久久亚洲精品国产精品婷婷| 日韩va亚洲va欧洲va国产| 成人伊人亚洲人综合网站222| 四虎成年永久免费网站| 一级特黄aa毛片免费观看| 久久国产精品免费一区| 黄页网址大全免费观看12网站| 亚洲中文字幕久久无码| 亚洲狠狠狠一区二区三区| 久久亚洲精品成人| 久久九九亚洲精品| 久久久精品国产亚洲成人满18免费网站| 毛片a级毛片免费观看免下载| 久久免费看黄a级毛片| 99re6在线视频精品免费下载| a级特黄毛片免费观看| 色老头综合免费视频| 老妇激情毛片免费| 色多多免费视频观看区一区| 精品亚洲av无码一区二区柚蜜| 亚洲精品免费网站| 亚洲情A成黄在线观看动漫软件| 亚洲毛片基地日韩毛片基地| 在线免费观看亚洲| 亚洲精品福利在线观看| 亚洲欧洲日韩国产| 亚洲三级高清免费| 亚洲乱人伦中文字幕无码| 亚洲成a人片在线观看天堂无码| 亚洲男人的天堂网站| 亚洲AV无码国产一区二区三区| 亚洲av日韩aⅴ无码色老头| 国产成人综合亚洲绿色| 一区二区三区在线观看免费 | 67194国产精品免费观看| 91久久青青草原线免费| 91成人免费观看网站| 毛片基地免费观看|