Estou escrevendo um código onde devo terminar um thread, existe algum método pra que eu possa fazer isso? tipo asim um método stop, que a proposito já tentei mas não funcionou.
Conto com a ajuda de vocês.
Obrigado
H3sil
Estou escrevendo um código onde devo terminar um thread, existe algum método pra que eu possa fazer isso? tipo asim um método stop, que a proposito já tentei mas não funcionou.
Conto com a ajuda de vocês.
Obrigado
H3sil
Hesil,
Um método run como este não pode ser interrompido (que eu saiba):
public void run()
{
while(true)
{
... // código
}
}
A solução é algo assim:
public void run()
{
while(!interupted())
{
... // código
}
}
Para interromper é só chamar o método interrupt() a partir da thread principal.
Obs. 1: não confundir o método interrupted(), que é um teste interno, com isInterrupted(), que é um teste externo!
Obs. 2: muitos métodos da biblioteca, notadamente o método sleep(), já incluem internamente o teste interrupted() e lançam uma InterruptedException.
Vou escrever agora mesmo com interrupt, valew.
Você pode utilizar um atributo booleano para controlar a execução da Thread também…
private boolean ativo = true;
...
public void run()
{
while (this.ativo)
{
System.out.println("ativo");
}
System.out.println("não ativo");
}
Sendo que o atributo booleano será modificado em outra parte da aplicação.