用java写一段线程死锁
时间: 2023-03-12 14:19:53 浏览: 57
我建议您可以这样写:
public class DeadlockExample {
public static Object Lock1 = new Object();
public static Object Lock2 = new Object(); public static void main(String args[]) { ThreadDemo1 T1 = new ThreadDemo1();
ThreadDemo2 T2 = new ThreadDemo2();
T1.start();
T2.start();
} private static class ThreadDemo1 extends Thread {
public void run() {
synchronized (Lock1) {
System.out.println("Thread 1: 持有锁 Lock1..."); try { Thread.sleep(10); }
catch (InterruptedException e) {}
System.out.println("Thread 1: 等待锁 Lock2..."); synchronized (Lock2) {
System.out.println("Thread 1: 持有锁 Lock1 和 Lock2...");
}
}
}
}
private static class ThreadDemo2 extends Thread {
public void run() {
synchronized (Lock2) {
System.out.println("Thread 2: 持有锁 Lock2..."); try { Thread.sleep(10); }
catch (InterruptedException e) {}
System.out.println("Thread 2: 等待锁 Lock1..."); synchronized (Lock1) {
System.out.println("Thread 2: 持有锁 Lock1 和 Lock2...");
}
}
}
}
}