摘选自《JAVA in a Nutshell》
A thread can be in one of six states. In Java 5.0, these states are represented by the THRead.State enumerated type, and the state of a thread can be queried with the getState( ) method. A listing of the Thread.State constants provides a good overview of the lifecycle of a thread:
The Thread has been created but its start( ) method has not yet been called. All threads start in this state.
The thread is running or is available to run when the operating system schedules it.
The thread is not running because it is waiting to acquire a lock so that it can enter a synchronized method or block. We'll see more about synchronized methods and blocks later in this section.
The thread is not running because it has called Object.wait() or Thread.join( ) .
The thread is not running because it has called Thread.sleep() or has called Object.wait( ) or Thread.join() with a timeout value.
The thread has completed execution. Its run( ) method has exited normally or by throwing an exception .