Eu encontrei um diagrama muito bom que descreve muito bem tudo o que você precisa / deseja saber.

- Novo
O thread está em um novo estado se você criar uma instância da classe Thread, mas antes da invocação do método start ().
- Executável
O encadeamento está em estado executável após a invocação do método start (), mas o planejador de encadeamento não o selecionou para ser o encadeamento em execução.
- Corrida
O thread está em estado de execução se o planejador de thread o tiver selecionado.
- Tempo de espera
A espera cronometrada é um estado de thread para um thread em espera com um tempo de espera especificado. Um encadeamento está no estado de espera cronometrado devido à chamada de um dos seguintes métodos com um tempo de espera positivo especificado:
- Thread.sleep (tempo de sono)
- Object.wait (tempo limite)
- Thread.join (tempo limite)
- LockSupport.parkNanos (tempo limite)
- LockSupport.parkUntil (tempo limite)
- Não executável (bloqueado)
Este é o estado em que o thread ainda está ativo, mas atualmente não é elegível para execução.
- Rescindido
Um thread está em estado finalizado ou morto quando seu método run () é encerrado.
Espero que isso responda sua pergunta :).
Estacionamento:
Desativa o thread atual para fins de agendamento de thread, a menos que a permissão esteja disponível.
Threads estão sendo estacionados ou suspensos, se você quiser chamá-lo dessa forma, porque não tem permissão para executar. Assim que a permissão for concedida, o thread será desestacionado e executado.
As permissões de LockSupport estão associadas a threads (isto é, a permissão é dada a uma thread em particular) e não se acumulam (ou seja, pode haver apenas uma licença por thread, quando a thread consome a permissão, ela desaparece).