A thread main e as outras  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
renatosilva
GUJ Master

Membro desde: 16/12/2004 17:09:19
Mensagens: 1787
Offline

Um programa java termina:

(1) quando a útlima thread termina, ou seja, a thread do main pode vir a terminar, mas o programa roda ainda por conta das outras, ou...

(2) quando a thread do main termina, ou seja, o main termina, mas não a sua thread, que ficaria "gerenciando as outras" ??????
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

Ele termina:

1. Quando a última thread não deamon termina. O main é uma das threads desse tipo, e ela pode terminar normalmente.
2. Quando a VM termina (pode ser através do System.exit(0)).

Quem gerencia as threads é a VM (e o controle é feito pelo SO), não a thread do main.

This message was edited 2 times. Last update was at 27/11/2007 11:40:04


@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
[WWW]
renatosilva
GUJ Master

Membro desde: 16/12/2004 17:09:19
Mensagens: 1787
Offline

Ih cara mas pelo o que testei não é isso não, a thread do main nunca termina, ela fica esperando as outras threads:

ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

Rode seu programa num debugger.

Você vai ver que a thread do main morre, e toma o seu lugar uma nova thread, chamada "DestroyJavaVM". Essa outra thread é quem espera que as outras terminem, limpa o ambiente e mata a VM.

@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
[WWW]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

Ok, alterei seu programa para que você possa ver o que falei sem um depurador:



Agora ele imprime não só a quantidade de threads, mas também o nome das threads rodando.

This message was edited 1 time. Last update was at 27/11/2007 13:16:14


@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
[WWW]
renatosilva
GUJ Master

Membro desde: 16/12/2004 17:09:19
Mensagens: 1787
Offline

Valeuzão Vini... já já vou dar uma olhada nisso...
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team