简单死锁的实现

public class DeadLock {
    public static  Object flag1 = new Object();
    public static  Object flag2 = new Object();
    public  static  void  main(String[] args){
      Thread t1 = new Thread(new t1l());
      Thread t2 = new Thread(new t2l());
      t1.start();
      t2.start();
    }
}
class t1l implements Runnable{
    @Override
    public void run() {
        System.out.println("t1运行");
        synchronized (DeadLock.flag1){
            try {
                System.out.println("t1锁住flag1");
                Thread.sleep(5000);
                synchronized (DeadLock.flag2){
                    System.out.println("t1锁住flag2");
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}
class t2l implements Runnable{
    @Override
    public void run() {
        System.out.println("t2运行");
        synchronized (DeadLock.flag2){
            try {
                System.out.println("t2锁住flag2");
                Thread.sleep(5000);
                synchronized (DeadLock.flag1){
                    System.out.println("t2锁住flag1");
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_31047245/article/details/80560860