Ola pessoal… depois de iniciado uma thread nao tem mais como para ela ? por exemplo… estou tentando usar essas funcoes destroy(); stop(); suspend() mas todos essas funcoes estao Deprecated.
Portanto existe uma forma de interromper a uma Thread ja inicializada ?
Como parar uma Thread?
5 Respostas
faça a execução do metodo run acabar. 
isso faz a Thread parar de excutar.
[]'s
nao da pra fazer a execução do metodo run acabar, pois este fica aquardando uma resposta via socket, e se o cliente nao responder a tread fica processando !
Gostaria de saber porque existe tantas funcoes com o mesmo objetivo e estao todas deprecated ! nao faz sentido :?
Desculpa… acho que posso usar a funcao interrupt().
tava lendo esse link… nao sou muito bom de ingles mas explica um pouco… http://java.sun.com/j2se/1.5.0/docs/api/
ainda tenho umas duvidas porque existe tantos metodos deprecated mas tudo bem
*Editado o link tava errado
http://java.sun.com/j2se/1.5.0/docs/guide/misc/threadPrimitiveDeprecation.html
Olá
porque existe tantos metodos deprecated mas tudo bem
Porque nem todo mundo pensa igual aos caras da Microsoft que lançam novas versões incompatíveis com a anterior.
O que está como deprecated geralmente tem um motivo bem claro e se você ainda não achou é porque ainda não procurou.
Há diversas maneiras de parar uma thread. Dê uma estudada um qualquer tutorial básico que isto geralmente é ensinado.
Dois modos diferentes:
- Setar uma flag como true quando quiser parar
private volatile boolean fim = false;
. . . .
public void run () {
while (!fim) {
. . .
}
}
public void setFim() {
fim = true;
}
- Usar o método interrupt() quando quiser parar
. . . .
public void run () {
while (!isInterrupted()) {
. . .
}
}
[]s
Luca
Porque nem todo mundo pensa igual aos caras da Microsoft que lançam novas versões incompatíveis com a anterior.O que está como deprecated geralmente tem um motivo bem claro e se você ainda não achou é porque ainda não procurou.
Luca
Acho que isso explica o porque de tantas funcoes deprecated. Obrigado e desculpa o incomodo, preferi ler o javadoc do que olhar um tutorial, mas creio que o javaalmac possa me ajudar melhor nessas situações entao.
O interrupt ja soluciona o problema ! mas achei interessante em usar isso: private volatile boolean fim = false;
Abraços