Value | Meaning |
---|---|
NEW | Thread state for a thread which has not yet started. |
RUNNABLE | Thread state for a runnable thread. A thread in the runnable state is executing in the Java virtual machine but it may be waiting for other resources from the operating system such as processor. |
BLOCKED | 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}. |
WAITING | Thread state for a waiting thread. A thread is in the waiting state due to calling one of the following methods: <ul> <li>{@link Object#wait() Object.wait} with no timeout</li> <li>{@link #join() Thread.join} with no timeout</li> <li>{@link LockSupport#park() LockSupport.park}</li> </ul> <p>A thread in the waiting state is waiting for another thread to perform a particular action. For example, a thread that has called {@code Object.wait()} on an object is waiting for another thread to call {@code Object.notify()} or {@code Object.notifyAll()} on that object. A thread that has called {@code Thread.join()} is waiting for a specified thread to terminate. |
TIMED_WAITING | Thread state for a waiting thread with a specified waiting time. A thread is in the timed waiting state due to calling one of the following methods with a specified positive waiting time: <ul> <li>{@link #sleep Thread.sleep}</li> <li>{@link Object#wait(long) Object.wait} with timeout</li> <li>{@link #join(long) Thread.join} with timeout</li> <li>{@link LockSupport#parkNanos LockSupport.parkNanos}</li> <li>{@link LockSupport#parkUntil LockSupport.parkUntil}</li> </ul> |
TERMINATED | Thread state for a terminated thread. The thread has completed execution. |
A thread state. A thread can be in one of the following states: <ul> <li>{@link #NEW}<br> A thread that has not yet started is in this state. </li> <li>{@link #RUNNABLE}<br> A thread executing in the Java virtual machine is in this state. </li> <li>{@link #BLOCKED}<br> A thread that is blocked waiting for a monitor lock is in this state. </li> <li>{@link #WAITING}<br> A thread that is waiting indefinitely for another thread to perform a particular action is in this state. </li> <li>{@link #TIMED_WAITING}<br> A thread that is waiting for another thread to perform an action for up to a specified waiting time is in this state. </li> <li>{@link #TERMINATED}<br> A thread that has exited is in this state. </li> </ul>
<p> A thread can be in only one state at a given point in time. These states are virtual machine states which do not reflect any operating system thread states.
@see #getState