java 经典死锁----纯手写,如有雷同纯属巧合

xiaoxiao2021-02-28  97

           首先建立自己的所对象,因为查看死锁现象所以得有两个以上的锁对象.

public class MyLock {     public static final Object objA = new Object();     public static final Object objB = new Object(); }

         然后写死锁类 public class DieLock extends Thread{     private boolean flag;     public DieLock(boolean flag){         this.flag = flag;     }               @Override     public void run() {         if(flag){             synchronized(MyLock.objA){                 System.out.println("true----------------objA");                     synchronized(MyLock.objB){                         System.out.println("true--------------objB");                     }             }         }else{             synchronized(MyLock.objB){                 System.out.println("false------------------objB");                     synchronized(MyLock.objA){                         System.out.println("false-----------------objA");                     }             }         }     } }

随后启动线程的测试类

public class Test {     public static void main(String[] args) {         DieLock d1 = new DieLock(true);         DieLock d2 = new DieLock(false);         d1.start();         d2.start();     } }

转载请注明原文地址: https://www.6miu.com/read-55310.html

最新回复(0)