Scenario.
Thread A goes in side a Synchronized method hence acquires the Lock of that OBJECT.
While the Thread A is inside Syc Block, Two more Threads (Thread B and C) tries to execute that Sync block, Since lock is acquired from Thread A, subsequent Thread B and C are in BLOCKED state.
Now Assume, some condition inside the Sync Block has not meet and then Thread A goes to Wait state, and thus relinquishing the LOCK of Object.
ex :
public synchronized void getLock() {
while (!isLockAvailable) {
wait();
//Do some task
sleep(10000);
isLockAvailable=true
}
//Set the flag so that next thread waits in the while loop
isLockAvailable = false;
}
Now .....
TO be completed
Thread A goes in side a Synchronized method hence acquires the Lock of that OBJECT.
While the Thread A is inside Syc Block, Two more Threads (Thread B and C) tries to execute that Sync block, Since lock is acquired from Thread A, subsequent Thread B and C are in BLOCKED state.
Now Assume, some condition inside the Sync Block has not meet and then Thread A goes to Wait state, and thus relinquishing the LOCK of Object.
ex :
public synchronized void getLock() {
while (!isLockAvailable) {
wait();
//Do some task
sleep(10000);
isLockAvailable=true
}
//Set the flag so that next thread waits in the while loop
isLockAvailable = false;
}
Now .....
TO be completed
No comments:
Post a Comment