<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 多線程中的死鎖問(wèn)題

    Java中的多線程使用 synchronized關(guān)鍵字實(shí)現(xiàn)同步.為了避免線程中使用共享資源的沖突,當(dāng)線程進(jìn)入 synchronized的共享對(duì)象時(shí),將為共享對(duì)象加上鎖,阻止其他的線程進(jìn)入該共享對(duì)象.但是,正因?yàn)檫@樣,當(dāng)多線程訪問(wèn)多個(gè)共享對(duì)象時(shí),如果線程鎖定對(duì)象的順序處理不當(dāng)話(huà)就有可能線程間相互等待的情況,即常說(shuō)的: 死鎖現(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) 評(píng)論(1)  編輯  收藏 所屬分類(lèi): Java基礎(chǔ)

    評(píng)論

    # re: Java 多線程中的死鎖問(wèn)題 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ò)了吧!這會(huì)死鎖嗎?
    第二個(gè)是2并且new 2時(shí)順序顛倒  回復(fù)  更多評(píng)論   

    導(dǎo)航

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

    統(tǒng)計(jì)

    常用鏈接

    留言簿(15)

    隨筆分類(lèi)

    隨筆檔案

    相冊(cè)

    收藏夾

    博客

    文檔

    站點(diǎn)

    論壇

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲毛片在线观看| 亚洲AV无码国产精品麻豆天美 | 亚洲av日韩av无码黑人| 一区在线免费观看| 亚洲国产成人久久精品99| 亚洲AV成人精品日韩一区| 午夜一级毛片免费视频| 亚洲精品女同中文字幕| 国产精品久久免费视频| 亚洲AV无码一区二区一二区| 成年在线网站免费观看无广告 | 国产无遮挡色视频免费观看性色| 国产伦精品一区二区三区免费下载 | 精品久久久久久久免费加勒比| 亚洲妇女熟BBW| 国产一区在线观看免费| 黄页视频在线观看免费| 亚洲国产精品狼友中文久久久| 一级片在线免费看| 亚洲五月综合缴情在线观看| 精品视频在线免费观看| 久久精品国产亚洲AV无码麻豆 | 亚洲国产成人久久精品99| 久久国产精品免费一区二区三区| 亚洲人成精品久久久久| 四虎影视在线影院在线观看免费视频 | 国产精品怡红院永久免费| 亚洲中文字幕久久精品无码A| 国产成人aaa在线视频免费观看| 国产天堂亚洲精品| 亚洲国产精彩中文乱码AV| 99re6热视频精品免费观看| 97se亚洲国产综合自在线| 国产成人青青热久免费精品| 国产vA免费精品高清在线观看| 亚洲va无码va在线va天堂| 亚洲精品免费网站| 九九综合VA免费看| 亚洲精品美女在线观看播放| 日韩一区二区免费视频| a级黄色毛片免费播放视频|