Java · Intermediário · Português · Técnico
interrupção de thread
Mecanismo cooperativo para pedir que uma thread pare o que faz, com interrupt(). A thread precisa checar o sinal ou reagir à InterruptedException.
Onde usar
Aparece no desligamento de pools e em tarefas longas. Em review: 'não engula InterruptedException; restaure a flag com Thread.currentThread().interrupt()'.
Em código
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
return; // encerra a tarefa
}Exemplos
Cancela a tarefa com interrupt e trata a InterruptedException.
Quem engole a InterruptedException impede o desligamento limpo.
Cuidado
interrupt() não mata a thread: só levanta um sinal. Capturar InterruptedException e ignorá-la quebra o cancelamento.
Sinônimos
interrupt