Tenho duas dúvidas sobre Threads:
- A primeira pergunta é: Qual a melhor forma de se usar Threads?
Conheço três formas:
Thread t = new Thread();
MinhaClasse extends Threads
MinhaClasse implements Runnable
A primeira cria um objeto da classe Thread, contudo eu não sei usar assim, pq naum tenho como especificar o que eu quero que ela faça (método run), certo?
A segunda, eu estendo da Classe Thread e digo o que o quero que fazer sobrescrevendo o método run()
A terceira eu implemento a interface Runnable, que me obriga a implementar o método run
Qual das três formas é a melhor de implementar threads, e em qual situação?
- A segunda pergunta é o seguinte, eu optei pela segunda opção(Estender de Thread), e agora eu estou querendo parar a minha Thread, é possível? :?:
Eu poderia mandar ela dormir com o sleep, contudo, o sleep recebe como argumento o tempo em milisegundos, e eu quero que ela durma até segunda ordem, ou seja, até eu mandar ela acordar,
Usei o stop, contudo ele é um metodo depreciado (deprecated), então preferi abdicar dessa solução.
Usei o interrupt, e ele lançou uma java.lang.InterruptedException, tentei tratar essa excessão, mas lançou uma illegalMonitorException, tentei tratar a segunda, mas naum capturou-a :shock:
Usei o wait, e ele lançou uma excessão, mas a thread naum parou :x
Me disseram que eu deveria na minha classe, sobrescrever o metodo interrupt para interromper a thread da minha maneira, mas achei que isso era brabeza :roll:
Que que eu faço?
Desculpem pelas duas perguntas, mas quero matar dois coelhos com uma “caixa d’água” só ! :lol:
obrigado,
abraços