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.run();
try
{ Thread.sleep( 3000 ); }
catch
(InterruptedException e) {}
runnable.stop();
}
|
|