线程在调用
wait()对象后进入等待状态。这称为 等待
状态。一旦线程达到等待状态,它将需要等待,直到其他线程调用
notify()或
notifyAll()对象上。
通知此线程后,它将无法运行。可能是其他线程也被通知了(使用
notifyAll()),或者第一个线程还没有完成工作,因此它仍然被阻塞,直到有机会为止。这称为
阻塞 状态。每当线程尝试获取对象上的锁并且某个其他线程已经持有该锁时,就会发生Blocked状态。
一旦其他线程离开并且有这个线程机会,它便会基于JVM线程机制有资格进行接管工作,然后进入Runnable状态并进入运行状态。



