Aşağıda bir Java doc (yayın hakkı Sun Microsystems) alıntısı vardır.
Durdurmanın (stop) çeşitli kullanımları, bir değişkeni, hedef iş parçacığının çalışmayı durdurmasını belirtecek biçimde değiştiren kodla değiştirilmelidir.
Hedef iş parçacığı bu değişkeni düzenli olarak denetlemeli ve değişken çalışmayı durdurmasını belirtiyorsa, kendi çalışma (run) yönteminden düzenli bir biçimde dönmelidir.
Hedef iş parçacığı uzun süreli olarak beklerse (örneğin bir koşul değişkeninde) beklemeyi kesmek için kesme (interrupt) yöntemi kullanılmalıdır.
Sağlanan StopSafeRunnable'ı kullanın.
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( "Hello World" );
try { Thread.sleep( 1000 ); } catch (InterruptedException e) {}
}
};
Thread thread = new Thread( runnable );
thread.start();
try { Thread.sleep( 3000 ); } catch (InterruptedException e) {}
runnable.stop();
}
|
|