The different states of threads are as follows:
1) New – When a  thread is instantiated it is in New state
 until the start() method is called on  the thread instance. In this 
state the thread is not considered to be alive. 
				  2) Runnable – The  thread enters into this state after the 
start method is called in the thread  instance. The thread may enter 
into the Runnable state from Running state. In  this state the thread is
 considered to be alive. 
				  3) Running – When  the thread scheduler picks up the thread
 from the Runnable thread’s pool, the  thread starts running and the 
thread is said to be in Running state.
	   4) Waiting/Blocked/Sleeping – In these  states the thread is 
said to be alive but not runnable. The thread switches to  this state 
because of reasons like wait method called or sleep method has been  
called on the running thread or thread might be waiting for some i/o 
resource  so blocked. 5)      Dead – When the thread  finishes its 
execution i.e. the run() method execution completes, it is said to  be 
in dead state. A dead state can not be started again. If a start() 
method is  invoked on a dead thread a runtime exception will occur.