Zde je citace z dokumentace k jazyku Java (copyright Sun Microsystems)
Na mnoha místech, kde je použita metoda stop, by měl být kód upravující některou z proměnných na znamení toho, že by se cílový jednotkový proces měl zastavit.
Cílový jednotkový proces by měl takovou proměnnou pravidelně kontrolovat a pokud proměnná indikuje, že by se jednotkový proces měl zastavit, tento by se měl řádným způsobem vrátit z metody běhu. Pokud cílový jednotkový proces čeká dlouho (například na proměnnou podmínky), čekání by se mělo přerušit pomocí metody přerušení.
Použijte StopSafeRunnable.
public static abstract class StopSafeRunnable implements Runnable {
public final void run() {
while ( !stopped ) {
doRun();
}
}
public void stop() {
stopped = true;
}
public boolean isStopped() {
return stopped;
}
protected abstract void doRun();
private boolean stopped = false;
}
public static void main(String[] args) {
StopSafeRunnable runnable = new StopSafeRunnable() {
public void doRun() {
System.out.println( "Ahoj světe" );
try { Thread.sleep( 1000 ); } catch (InterruptedException e) {}
}
};
Thread thread = new Thread( runnable );
thread.start();
try { Thread.sleep( 3000 ); } catch (InterruptedException e) {}
runnable.stop();
}
|
|