线程同步之死锁

来源:互联网 发布:java实现静态代理 编辑:程序博客网 时间:2024/05/02 00:28
/* * 死锁就是俩个线程争夺公共资源, * 俩个线程个自锁住一个资源 * 只有俩个同时锁住满足条件才能继续运行, * 但都不肯让步,陷入死锁状态 */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(500);}catch(Exception e){e.printStackTrace();}synchronized(o2){System.out.println("1");}}}if(flag==0){synchronized(o2){try{Thread.sleep(500);}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();}}

0 0
原创粉丝点击