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

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

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

    Dev@Free

    zJun's Tech Weblog

    Java 多線程中的死鎖問題

    Java中的多線程使用 synchronized關(guān)鍵字實(shí)現(xiàn)同步.為了避免線程中使用共享資源的沖突,當(dāng)線程進(jìn)入 synchronized的共享對象時(shí),將為共享對象加上鎖,阻止其他的線程進(jìn)入該共享對象.但是,正因?yàn)檫@樣,當(dāng)多線程訪問多個(gè)共享對象時(shí),如果線程鎖定對象的順序處理不當(dāng)話就有可能線程間相互等待的情況,即常說的: 死鎖現(xiàn)象.

    比如下面演示了一個(gè)典型的死鎖的情況:

    線程:MyThread
    /**
    ?*?共享線程
    ?*
    */

    Class?MyThread?
    extends ?Thread {
    ??
    private
    ?String?threadName;
    ??
    private
    ?String?shareObj1,shareObj2;
    ??
    public ?MyThread(String?name,String?shareObj1,String?shareObj2)
    {
    ????
    this .threadName? =
    ?name;
    ????
    this .shareObj1? =
    ?shareObj1;
    ????
    this .shareObj2? =
    ?shareObj2;
    ????start();
    ??}

    ??
    public ?run() {
    ????
    synchronized (shareObj1)
    {
    ??????System.out.println(threadName?
    + ? " locked?for?shareObj1 "
    );
    ????}

    ????Thread.sleep(
    1000 );
    ????
    synchronized (shareObj1)
    {
    ??????System.out.println(threadName?
    + ? " locked?for?shareObj2 "
    );
    ????}


    ??}

    }

    主程序:Main
    public ? class ?Main {
    ??
    private ?String?shareObj1? = ? " share?object?1 "
    ;
    ??
    private ?String?shareObj2? = ? " share?object?2 "
    ;
    ??
    public ? static ?main(String[]?args)
    {
    ????MyThread?thread1?
    = ? new ?MyThread( " thread1 "
    ,shareObj1,shareObj2);
    ????Thread.sleep(
    1000
    );
    ????MyThread?thread2?
    = ? new ?MyThread( " thread2 "
    ,shareObj1,shareObj2);
    ??}

    }

    運(yùn)行結(jié)果:

    posted on 2007-07-24 19:02 zJun's帛羅閣 閱讀(3237) 評論(1)  編輯  收藏 所屬分類: Java基礎(chǔ)

    評論

    # re: Java 多線程中的死鎖問題 2011-06-27 17:00 vistor

    synchronized (shareObj1) {
    System.out.println(threadName + " locked for shareObj1 " );
    }
    Thread.sleep( 1000 );
    synchronized (shareObj1) {
    System.out.println(threadName + " locked for shareObj2 " );
    }
    代碼錯(cuò)了吧!這會死鎖嗎?
    第二個(gè)是2并且new 2時(shí)順序顛倒  回復(fù)  更多評論   

    導(dǎo)航

    <2007年7月>
    24252627282930
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    統(tǒng)計(jì)

    常用鏈接

    留言簿(15)

    隨筆分類

    隨筆檔案

    相冊

    收藏夾

    博客

    文檔

    站點(diǎn)

    論壇

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 中文字幕无码日韩专区免费| 一级中文字幕免费乱码专区| 一区二区三区在线免费看| 国产成人精品久久亚洲高清不卡 | 亚洲精品天堂无码中文字幕| 啦啦啦www免费视频| 亚洲第一综合天堂另类专 | 亚洲福利视频一区二区三区| 免费在线观看一级片| 国产aⅴ无码专区亚洲av| 日韩精品免费视频| 亚洲国产一区二区三区青草影视 | 国产成人精品日本亚洲网址| 黄页网站在线观看免费高清| 亚洲综合色丁香婷婷六月图片| 日韩吃奶摸下AA片免费观看| 亚洲精品永久在线观看| 国产成人免费网站在线观看| 羞羞视频免费网站日本| 亚洲精品美女久久777777| 91福利视频免费观看| 狠狠色香婷婷久久亚洲精品| 免费的一级片网站| 久久免费香蕉视频| 亚洲日本在线看片| 成年女人毛片免费视频| 曰批免费视频播放在线看片二| 亚洲日韩激情无码一区| 免费黄色福利视频| 野花视频在线官网免费1| 亚洲日本va中文字幕久久| 91黑丝国产线观看免费| 精品久久久久久亚洲中文字幕| 国产亚洲精品不卡在线| 最近免费中文字幕高清大全| 亚洲国产精品日韩av不卡在线| 国产L精品国产亚洲区久久| 国产成人精品免费视频大| 黄色三级三级免费看| 久久久久亚洲AV无码观看| 国产成人免费手机在线观看视频|