/** * Thread state for a thread blocked waiting for a monitor lock. * A thread in the blocked state is waiting for a monitor lock * to enter a synchronized block/method or * reenter a synchronized block/method after calling * {@link Object#wait() Object.wait}. */ BLOCKED,
/** * Thread state for a waiting thread. * A thread is in the waiting state due to calling one of the * following methods: * {@link Object#wait() Object.wait} with no timeout * {@link #join() Thread.join} with no timeout * {@link LockSupport#park() LockSupport.park} * * * A thread in the waiting state is waiting for another thread to * perform a particular action. * * For example, a thread that has called Object.wait() * on an object is waiting for another thread to call * Object.notify() or Object.notifyAll() on * that object. A thread that has called Thread.join() * is waiting for a specified thread to terminate. */ WAITING,
从中可以清晰的得到线程处于BLOCKED和WAITING状态的场景。
线程处于BLOCKED状态的场景。
线程处于WAITING状态的场景。
提到WAITING状态,顺便提一下TIMED_WAITING状态的场景。
线程处于TIMED_WAITING状态的场景。
原文:http://www.cnblogs.com/moonandstar08/p/4903078.html