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

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

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

    隨筆-59  評(píng)論-31  文章-0  trackbacks-0
          死鎖是一個(gè)經(jīng)典的多線程問題,因?yàn)椴煌木€程都在等待那些根本不可能被釋放的鎖,
    從而導(dǎo)致所有的工作都無法完成。假設(shè)有兩個(gè)線程,分別代表兩個(gè)饑餓的人,他們必須共享刀叉并輪流吃飯。
    他們都需要獲得兩個(gè)鎖:共享刀和共享叉的鎖。假如線程 "A" 獲得了刀,而線程 "B" 獲得了叉。
    線程 A 就會(huì)進(jìn)入阻塞狀態(tài)來等待獲得叉,而線程 B 則阻塞來等待 A 所擁有的刀。
          
          讓所有的線程按照同樣的順序獲得一組鎖。這種方法消除了 X 和 Y 的擁有者分別等待對(duì)方的資源的問題。
      將多個(gè)鎖組成一組并放到同一個(gè)鎖下。前面死鎖的例子中,可以創(chuàng)建一個(gè)銀器對(duì)象的鎖。于是在獲得刀或叉之前都必須獲得這個(gè)銀器的鎖。
      將那些不會(huì)阻塞的可獲得資源用變量標(biāo)志出來。當(dāng)某個(gè)線程獲得銀器對(duì)象的鎖時(shí),就可以通過檢查變量來判斷是否整個(gè)銀器集合中的對(duì)象鎖都可獲得。如果是,它就可以獲得相關(guān)的鎖,否則,就要釋放掉銀器這個(gè)鎖并稍后再嘗試。
      最重要的是,在編寫代碼前認(rèn)真仔細(xì)地設(shè)計(jì)整個(gè)系統(tǒng)。多線程是困難的,在開始編程之前詳細(xì)設(shè)計(jì)系統(tǒng)能夠幫助你避免難以發(fā)現(xiàn)死鎖的問題。
    posted on 2012-12-10 10:54 RoyPayne 閱讀(344) 評(píng)論(0)  編輯  收藏 所屬分類: java并發(fā)
    主站蜘蛛池模板: 亚洲欧洲日产国码二区首页 | 亚洲女人初试黑人巨高清| 国产麻豆成人传媒免费观看| 午夜亚洲av永久无码精品| 久久无码av亚洲精品色午夜| 四虎在线播放免费永久视频| 无套内谢孕妇毛片免费看看 | 久久精品国产免费观看三人同眠| 日韩亚洲Av人人夜夜澡人人爽| 亚欧免费一级毛片| 少妇中文字幕乱码亚洲影视| 亚洲美女视频免费| 亚洲成A人片在线播放器| 成年女人18级毛片毛片免费| 亚洲AV日韩AV无码污污网站| 亚洲国产V高清在线观看| 国产又黄又爽胸又大免费视频| 国产∨亚洲V天堂无码久久久| 在线美女免费观看网站h| 亚洲香蕉久久一区二区 | 日韩精品无码免费专区午夜不卡 | 亚洲日本乱码卡2卡3卡新区| 成人免费视频国产| 精精国产www视频在线观看免费| 久久亚洲高清观看| 我想看一级毛片免费的| 污污污视频在线免费观看| 亚洲精品综合一二三区在线| 91视频国产免费| 欧洲乱码伦视频免费国产| 亚洲国产精彩中文乱码AV| 波多野结衣免费在线| 精品女同一区二区三区免费播放| 亚洲精品无码av人在线观看| 国产精品爱啪在线线免费观看| 亚洲av成人一区二区三区在线播放 | 成人午夜视频免费| 中文字幕久无码免费久久 | 人妻仑刮八A级毛片免费看| 久久亚洲精品国产精品| 免费jjzz在线播放国产|