Implementation of Deadlock Through Java Program 2: Code
Implementation of Deadlock Through Java Program 2: Code
Palak Arora
Implementation of Deadlock through Java Program 2
Code:
public class Deadlock_wait {
public static void main(String[] args) {
// These are the two resource objects we'll try to get locks for
final Object resource1 = "resource1";
final Object resource2 = "resource2";
// Here's the first thread. It tries to lock resource1 then resource2
Thread t1 = new Thread() {
public void run() {
// Lock resource 1
synchronized(resource1) {
System.out.println("Thread 1: locked resource 1");
try { Thread.sleep(50); } catch (InterruptedException e) {}
synchronized(resource2) {
System.out.println("Thread 1: locked resource 2");
System.out.println("Thread 1: Put on wait, removed
lock on resource 1");
try{ resource1.wait(); } catch (InterruptedException e) {
}
}
}
};
Thread t2 = new Thread() {
public void run() {
synchronized(resource1) {
System.out.println("Thread 2: locked resource 1");
0802IT111033
Palak Arora
//try { Thread.sleep(50); } catch (InterruptedException e) {}
synchronized(resource2) {
System.out.println("Thread 2: locked resource 2");
}
}
}
};
t1.start();
t2.start();
}
}
Output 4: