《java 多线程中的死锁》

来源:互联网 发布:英伦 知乎 编辑:程序博客网 时间:2024/04/25 21:55
class Dead implements Runnable//实现接口{private boolean flag;Dead(boolean flag){this.flag = flag;}public void run(){if (flag){while (true){//同步代码块synchronized(Locks.obj1)//锁1{System.out.println("if 1 启动!");synchronized(Locks.obj2)//锁2{System.out.println("if 2 启动!");}}}}else{while (true){synchronized(Locks.obj2)//锁2{System.out.println("else 2 启动!");synchronized(Locks.obj1)//锁1{System.out.println("else 1 启动!");}}}}}}class Locks//定义锁对象{static Object obj1 = new Object();static Object obj2 = new Object();}class  DeadLock{public static void main(String[] args) {Thread t1 = new Thread(new Dead(true));//开启两个线程Thread t2 = new Thread(new Dead(false));t1.start();//启动两个线程t2.start();}}

原创粉丝点击