首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

为何不会产生死锁

2012-07-03 
为啥不会产生死锁!如下代码,应该会 死 锁的,为啥 不会死锁?Java codepublic class TestDeadLock implement

为啥不会产生死锁!
如下代码,应该会 死 锁的,为啥 不会死锁?

Java code
public class TestDeadLock implements Runnable{    public int flag = 1 ;    static Object o1 = new Object(),o2 = new Object();    public void run()    {          System.out.println("flag = "+flag);          if(flag == 1)          {                synchronized(o1)                {                      try                      {                            Thread.sleep(200);                      }                      catch(Exception e)                      {                            e.printStackTrace();                      }                                      }                synchronized(o2)                {                      System.out.println("1");                }          }            if(flag == 0)    {         synchronized(o2)         {               try               {                     Thread.sleep(200);               }               catch(Exception e )               {                    e.printStackTrace();               }               synchronized(o1)               {                   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();             }}


[解决办法]
Java code
         synchronized(o2)                {                      System.out.println("1");                } 

热点排行