Encontré un diagrama muy agradable que describe bastante bien todo lo que necesitas / quieres saber.
- Nuevo
El hilo está en un nuevo estado si crea una instancia de la clase Thread pero antes de la invocación del método start ().
- Runnable
El hilo está en estado ejecutable después de la invocación del método start (), pero el programador del hilo no lo ha seleccionado para que sea el hilo en ejecución.
- Corriendo
El subproceso está en estado de ejecución si el planificador de subprocesos lo ha seleccionado.
- Espera cronometrada
La espera temporizada es un estado de subproceso para un subproceso en espera con un tiempo de espera especificado. Un hilo se encuentra en el estado de espera temporizado debido a que se llama a uno de los siguientes métodos con un tiempo de espera positivo especificado:
- Thread.sleep (tiempo de sueño)
- Object.wait (tiempo de espera)
- Thread.join (tiempo de espera)
- LockSupport.parkNanos (tiempo de espera)
- LockSupport.parkUntil (tiempo de espera)
- No ejecutable (bloqueado)
Este es el estado en el que el hilo aún está activo, pero actualmente no es elegible para ejecutarse.
- Terminado
Un hilo está en estado terminado o inactivo cuando su método run () sale.
Espero que esto responda a tu pregunta :).
Estacionamiento:
Desactiva el hilo actual para fines de programación de hilos a menos que el permiso esté disponible.
Los subprocesos se están estacionando o suspendiendo si desea llamarlo de esta manera porque no tiene permiso para ejecutarse. Una vez que se concede el permiso, el hilo se desempacará y se ejecutará.
Los permisos de LockSupport están asociados con subprocesos (es decir, el permiso se otorga a un subproceso en particular) y no se acumula (es decir, solo puede haber un permiso por subproceso, cuando el subproceso consume el permiso, desaparece).