<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)話就有可能線程間相互等待的情況,即常說(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帛羅閣 閱讀(3227) 評(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)論排行榜

    主站蜘蛛池模板: 在线观看无码的免费网站| 亚洲白色白色在线播放| 成人毛片免费在线观看| 午夜视频在线免费观看| 污污免费在线观看| 亚洲夂夂婷婷色拍WW47| 亚洲国产综合自在线另类| 精品久久香蕉国产线看观看亚洲| 国产伦一区二区三区免费 | 亚洲国产精品无码久久九九| 999国内精品永久免费观看| 日本免费在线中文字幕| 精品熟女少妇aⅴ免费久久| 污视频网站免费观看| 亚洲成a人片在线观看天堂无码| 亚洲欧洲国产经精品香蕉网| 久久夜色精品国产亚洲AV动态图| 久久久久亚洲精品无码网址| 一区二区三区亚洲视频| 国产一级淫片a视频免费观看| 日韩精品成人无码专区免费| 久久久久av无码免费网| 免费视频成人片在线观看| 国产精品偷伦视频观看免费| a级毛片高清免费视频就| 精品国产污污免费网站入口在线| 一边摸一边爽一边叫床免费视频| 美女露100%胸无遮挡免费观看| 国产亚洲精品AAAA片APP| 亚洲AV永久无码精品放毛片| 日韩国产欧美亚洲v片| 亚洲国产成人无码AV在线影院| 亚洲精品无码不卡在线播放| 亚洲第一成年免费网站| 亚洲AV电影天堂男人的天堂| 亚洲av成本人无码网站| 色噜噜狠狠色综合免费视频| 一级一看免费完整版毛片| 香蕉免费在线视频| 久久免费区一区二区三波多野| 日韩精品无码免费一区二区三区 |