Shiva,
When a
thread calls wait(..) , it releases the lock which it has currently,( because in order to able to call wait() it thread must get the object's lock first ) and goes to the
waiting state. This thread is waiting for some other thread to notify it. Which means this thread which called wait() is waiting for the lock of the object which it had released. Every object has a pool of waiting thread who are all waiting (competing) to grab the object's lock. Since a object has only one lock, this lock can be with only one thread at a time. the The thread which had issued wait() is calmly waiting right now, and when it is notified by another thread which owns the same lock by means of notify()/notifyAll(), then it competes with all other threads who are all in the same boat like this, and if it manages to grab the lock then , it goes to
ready state. Now, it is waiting for green signal from the scheduler.
regds.
So the given ans is correct.
maha anna