日期:2014-05-20 浏览次数:20661 次
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(); } }
synchronized(o2) { System.out.println("1"); }