| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/11/2009 08:46:08
|
nephestos
Debugger
Membro desde: 13/11/2009 18:46:53
Mensagens: 66
Offline
|
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
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.
This message was edited 1 time. Last update was at 14/11/2009 11:19:33
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/11/2009 10:47:40
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20578
Localização: Curitiba/PR
Offline
|
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.
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/11/2009 11:18:30
|
nephestos
Debugger
Membro desde: 13/11/2009 18:46:53
Mensagens: 66
Offline
|
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 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?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/11/2009 11:46:07
|
rodrigo_gomes
GUJ Master
![[Avatar]](/images/avatar/d30960ce77e83d896503d43ba249caf7.jpg)
Membro desde: 25/11/2003 15:45:21
Mensagens: 1088
Localização: São Paulo
Offline
|
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.
|
rodrigo de paiva gomes
http://twitter.com/rod_gomes |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/11/2009 12:56:29
|
nephestos
Debugger
Membro desde: 13/11/2009 18:46:53
Mensagens: 66
Offline
|
Obrigado pela atenção, elaborei um programa simples e enviei ao meu professor, vou aguardar o parecer dele e depois retorno aqui.
|
|
|
 |
|
|