Esta é uma estração de doc Java (direitos autorais da Sun Microsystems)
Muitos usuários de interrupção devem ser substituídos pelo código que simplesmente modifica alguma variável para indicar que o encadeamento de destino parou de funcionar.
O encadeamento de destino deve verificar essa variável regularmente, e retornar desse método de execução de uma maneira regular se a variável indicar que é para parar a execução. Se o encadeamento de destino aguardar por longos períodos (em uma variável de condição, por exemplo), o método de interrupção deve ser utilizado para interromper a espera.
Utilize o StopSafeRunnable fornecido.
público estático abstrato classe StopSafeRunnable implementa Executável {
público final nulo executar() {
enquanto ( !parado ) {
doRun();
}
}
público nulo parar() {
parado = verdadeiro;
}
público booleano isStopped() {
retornar parado;
}
protegido abstrato void doRun();
privado booleano parado = falso;
}
público estático nulo principal(Cadeia[] args) {
StopSafeRunnable executável = novo StopSafeRunnable() {
público nulo doRun() {
System.out.println( "Olá, Mundo" );
tentar { Thread.sleep( 1000 ); } capturar (InterruptedException e) {}
}
};
Encadeamento encadeamento = novo Encadeamento( executável );
thread.start();
tentar { Thread.sleep( 3000 ); } capturar (InterruptedException e) {}
runnable.stop();
}
|
|