隨筆-199  評(píng)論-203  文章-11  trackbacks-0

          public class TestDeadLock implements Runnable{
           public int flag = 1;
           static Object S1 = new Object(),S2=new Object();
           public void run(){
            System.out.println("flag="+flag);
            if(flag==1){
             synchronized(S1){
              try{
               Thread.sleep(500);
              }catch(Exception e){
               e.printStackTrace();
              }
              synchronized(S2){
               System.out.println("1");
              }
             } 
             }
             if(flag==0){
              synchronized(S2){
               try{
                Thread.sleep(500);
               }catch(Exception e){
                e.printStackTrace();
               }
               synchronized(S1){
                System.out.println("0");
               }
              }
             }
           }

           public static void main(String[] args){
            TestDeadLock td1=new TestDeadLock();
            TestDeadLock td2=new TestDeadLock();
            td1.flag=1;
            td2.flag=0;
            Thread t1=new Thread(td1);
            Thread t2=new Thread(td2);
            t1.start();
            t2.start();
           }
          }
          //如果你把這個(gè)死鎖的執(zhí)行過(guò)程都明白了,我想你的線程同步這一塊應(yīng)該學(xué)得還算可以了!

          posted on 2009-03-12 08:16 Werther 閱讀(1838) 評(píng)論(2)  編輯  收藏 所屬分類: 10.Java

          評(píng)論:
          # re: 經(jīng)典線程死鎖(Demo) 2009-03-12 09:41 | 逝水fox
          在程序中多個(gè)鎖之間的鎖定順序不一致造成的死鎖 確實(shí)比較典型的咯  回復(fù)  更多評(píng)論
            
          # re: 經(jīng)典線程死鎖(Demo)[未登錄](méi) 2009-03-12 12:32 | Werther
          @逝水fox
          面試的時(shí)候經(jīng)常有面試官問(wèn)到的題,設(shè)置有時(shí)候他要你手寫(xiě)一個(gè)死鎖程序!  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 易门县| 于田县| 炎陵县| 宜兰市| 客服| 达孜县| 平南县| 和林格尔县| 文登市| 盘锦市| 达拉特旗| 成都市| 靖江市| 宕昌县| 咸阳市| 金堂县| 嵊泗县| 林口县| 扶沟县| 恩施市| 辽源市| 武隆县| 余姚市| 察隅县| 翁源县| 斗六市| 南乐县| 石泉县| 大英县| 本溪| 明溪县| 商洛市| 长丰县| 恩平市| 阿坝县| 来宾市| 黎平县| 嵩明县| 蕉岭县| 治多县| 普洱|