Java線程死鎖模拟
本文由廣州瘋狂軟體java教育訓練分享:
1,關于死鎖的了解
死鎖,我們可以簡單的了解為是兩個線程同時使用同一資源,兩個線程又得不到相應的資源而造成永無互相等待的情況。
2,模拟死鎖
背景介紹:我們建立一個朋友類,當朋友向我們鞠躬的時候,我們也要向朋友鞠躬,這樣才算一個完整的動作。當兩人同時鞠躬的時候,都在等待對方鞠躬。這時就造成了死鎖。
模拟程式:
package com.yxy.thread;
public class Deadlock {
static class Friend {
//朋友名字
private final String name;
//朋友實體類型的構造方法
public Friend(String name) {
this.name = name;
}
//擷取名字
public String getName() {
return this.name;
}
//朋友向我鞠躬方法,(同步的)
public synchronized void bow(Friend bower) {
System.out.format("%s: %s"
+ " has bowed to me!%n",
this.name, bower.getName());
bower.bowBack(this);
}
//我回敬鞠躬方法,(同步的)
public synchronized void bowBack(Friend bower) {
System.out.format("%s: %s"
+ " has bowed back to me!%n",
this.name, bower.getName());
}
}
public static void main(String[] args) {
//死鎖模拟程式測試開始
//建立兩個友人alphonse,Gaston
final Friend alphonse =
new Friend("Alphonse");
final Friend gaston =
new Friend("Gaston");
//啟動兩位友人鞠躬的線程。
new Thread(new Runnable() {
public void run() { alphonse.bow(gaston); }
})。start();
new Thread(new Runnable() {
public void run() { gaston.bow(alphonse); }
})。start();
}
}
學IT技術就學Java技術,瘋狂軟體Java教育訓練機構,打造國内進階Java人才。
瘋狂軟體Java教育訓練優勢
1. Java是世界第一大程式設計語言,市場占有率達20%。
2.廣州最專業Java教育訓練機構,多年教學經驗。
3.學員技術牛就業率最好,就業薪資都在5000以上。
4.瘋狂軟體Java教育訓練課程以項目實戰帶動教學,上課打破傳統課堂模式,以實訓項目貫穿教學,帶領學生一起做企業真實項目。
瘋狂Java教育訓練專注軟體開發教育訓練,提升學員就業能力,重點提升實踐動手能力。高薪從IT名企請來項目經理為學員親自授課,對學員進行實戰教學,在瘋狂java,通過大量全真經典企業級項目進行集中教育訓練,學員通過數月教育訓練都可獲得1-2年的工作經驗,進而在同類的求職者中脫穎而出。瘋狂Java教育訓練讓你體會java程式設計的快樂,項目開發的興奮,成就感,通過短短幾個月的時間,讓你在半年的時間内掌握8-10萬的代碼量,掌握Java核心技術,迅速成為技能型的現代化高端人才,迅速獲得高薪就業!
瘋狂軟體中心Java教育訓練、iOS教育訓練打造名企技術經理,成為中國軟體産業的中流砥柱:全真企業需求,項目小組管理,大量實操項目的瘋狂訓練,企業全真案例教學,學成至少相當于兩年工作經驗“全真項目”教學,高強度的狂熱訓練,帶領學生走近程式設計,感受程式設計,熱愛程式設計,學完後産生鳳凰涅槃般的重生。 “全真企業環境”模拟:以項目組形式管理,每個程式員(學員)對項目組長負責,組長向項目經理(老師)負責。以版本控制工具為引導,充分激發每個程式員對程式設計的激情 四個半月掌握近8~10萬代碼量,達到技術經理的代碼掌握量。
發表于
2014-03-08 14:48
百易城
閱讀(269)
評論(0)
編輯
收藏
舉報