手写一个死锁Demo
相互持有对方锁,导致死锁
1 package jesse.test04; 2 3 public class DeadLockSample extends Thread{ 4 5 private String first; 6 private String second; 7 public DeadLockSample(String name,String first, String second) { 8 super(name); 9 this.first = first; 10 this.second = second; 11 } 12 13 @Override 14 public void run(){ 15 synchronized(first){ 16 System.out.println(this.getName()+" obtained: "+ first); 17 try { 18 Thread.sleep(1000L); 19 synchronized(second){ 20 System.out.println(this.getName()+" obtained: "+ second); 21 } 22 } catch (InterruptedException e) { 23 e.printStackTrace(); 24 } 25 } 26 27 } 28 public static void main(String[] args) throws InterruptedException { 29 String lockA = "lockA"; 30 String lockB = "locakB"; 31 DeadLockSample t1 = new DeadLockSample("thread1", lockA, lockB); 32 DeadLockSample t2 = new DeadLockSample("thread2", lockB, lockA); 33 t1.start(); 34 t2.start(); 35 t1.join(); 36 t2.join(); 37 } 38 39 40 }