经典线程死锁
代码例子如下:
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(); }
原文地址:
http://www.blogjava.net/Werther/archive/2009/03/12/259258.html