Dúvida sobre status de Thread

Bom dia amigos, esta é minha primeira postagem, estou com uma dúvida em uma questão sobre Thread que caiu na prova, considere o código abaixo sobre Thread

//... public void run(){ try { (*2) Thread.sleep(2000); (*3) } catch (InterruptedException ie) { } }

Considere que a Thread já foi iniciada pelo método start().

A questão é qual o status da Thread no momento (*2) e no momento (*3)? (OBS: Status refere-se a morto, pronto, executando, dormindo, aguardando, bloqueado, nascido)

Depois eu posto o que eu respondi.

Nenhum. Esse código não compila. O sleep() deveria estar dentro de um try, catch, pois ele lança um exceção verificada chamada InterruptedException.

Provavelmente esse não é a resposta que seu professor gostaria e de ouvir. No caso, em ambos os pontos ele estaria executando. Há a possibilidade também do sleep lançar a exception que diz que lança, então, a thread estaria morta no ponto #3.

Amigo, valeu pela resposta, exatamente o código está dentro do bloco try…catch, eu esqueci de colocar, vou editar o tópico.

Bem mas desconsiderando isto, então você diz que em ambos os casos é executando, bem, então vou dizer o que eu respondi na prova e errei.

No status do (*2) eu coloquei executando e… acertei!

No status do (*3) eu coloquei executando :slight_smile: e … errei!

Ele disse que no (*3) o status é adormecido, mas eu disse que se a linha (*3) é executada então é por que a thread está rodando ^^, o que vocês pensam?

Você está correto.
Como você e o ViniGodoy falaram, nesses pontos a thread estará executando. Ela só está adormecida durante a chamada do sleep, e não depois.
Mostre um programinha simples de exemplo para seu professor, printando os status, para provar que está correto.

Obrigado pela atenção, elaborei um programa simples e enviei ao meu professor, vou aguardar o parecer dele e depois retorno aqui.