Я пытался создать тупиковую ситуацию.Я смог произвести это, используя приведенный ниже код.
class MyCode {
public static Object lock1 = new Object();
public static Object lock2 = new Object();
public static void main (String[] args) throws Exception{
Thread t1 = new Thread(()-> {
synchronized(lock1) {
System.out.println("Took lock on object" + lock1);
try {
Thread.sleep(10000);
}catch(Exception e) {}
synchronized(lock2) {
System.out.println("hello world 1....");
}
}
});
Thread t2 = new Thread(()-> {
synchronized(lock2) {
System.out.println("Took lock on object" + lock2);
try {
Thread.sleep(10000);
}catch(Exception e) {}
synchronized(lock1) {
System.out.println("hello world 2....");
}
}
});
t1.start();
t2.start();
System.out.println("Hello Java");
}
}
Мое требование - выполнить код, используя эти 2 потока.
Как мне этого добиться?Есть ли какой-либо другой способ в Java, я могу сделать это с помощью метода ожидания / уведомления?
Заранее спасибо.