The life cycle of the thread in java is controlled by JVM.
A thread can be in one of the five states.
The thread is in new state if you create an instance of Thread class but before the invocation of start() method.
The thread is in runnable state after invocation of start() method, but the thread scheduler has not selected it to be the running thread.
The thread is in running state if the thread scheduler has selected it.
4) Non-Runnable (Blocked)
This is the state when the thread is still alive, but is currently waiting for other thread to finish using thread join or it can be waiting for some resources to available
A thread is in terminated or dead state when its run() method exits.