Ciclo de vida do encadeamento em Java - Estados do encadeamento em Java
Compreender o ciclo de vida do encadeamento em Java e os estados do encadeamento são muito importantes quando você está trabalhando com encadeamentos e programando para ambientes multiencadeados. Do nosso último tutorial, podemos criar uma classe de thread java implementando a interface Runnable ou estendendo a classe Thread, mas para iniciar uma thread java, primeiro temos que criar o objeto Thread e chamar seu método start() para executar o método run() como um fio.
Ciclo de vida do thread em Java
Novo
Quando criamos um novo objeto Thread usando o operador new, o estado do thread é New Thread. Neste ponto, o thread não está ativo e é um estado interno da programação Java.
Executável
Quando chamamos a função start() no objeto Thread, seu estado é alterado para Runnable. O controle é dado ao Thread Scheduler para finalizar sua execução. Se deve executar este encadeamento instantaneamente ou mantê-lo no pool de encadeamento executável antes de executar, depende da implementação do SO do agendador de encadeamento.
Correndo
Quando o thread está em execução, seu estado é alterado para Running. O agendador de threads escolhe um dos threads do pool de threads executáveis e altera seu estado para Running. Então a CPU começa a executar este thread. Um thread pode mudar de estado para Runnable, Dead ou Blocked do estado de execução, dependendo da divisão do tempo, da conclusão do thread do método run() ou da espera por alguns recursos.
Bloqueado/Aguardando
Um encadeamento pode estar esperando que outro encadeamento termine de usar a implementação do notificador de garçom ou recursos de E/S, então seu estado é alterado para Aguardando. Depois que o estado de espera do encadeamento termina, seu estado é alterado para Runnable e é movido de volta para o pool de encadeamento executável.
Morto
Uma vez que o thread terminou de executar, seu estado é alterado para Dead e é considerado não vivo. Acima estão os diferentes estados da rosca. É bom conhecê-los e como o thread muda de estado. Isso é tudo para o ciclo de vida do thread em java.