【初心者】Java質問・相談スレッド66【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0554デフォルトの名無しさん
2005/05/12(木) 23:50:44Two-Phase TerminationパターンをThreadを継承したクラスではなく、
Runnableを実装したクラスで実行したいのですが、どうしてもうまくいきません。
this.interrupted();の部分が、Runnableのインターフェースでは実行できないのが原因なのですが、
何かいい方法はあるでしょうか?
Thread.interrupted()などとしても、interrupted()を実行するのはWorkerThreadではなく、
mainスレッドになってしまい、うまく動作しませんでした。
よろしくお願いします。
public class WorkerThread extends Thread {
private volatile boolean _shutdownRequested = false;
public void shutdownRequest(){
_shutdownRequested = true;
this.interrupted();
}
public void run() {
try {
while(!_shutdownRequested){
System.out.println("現在動いています");
Thread.sleep(3000);
}
} catch (InterruptedException e){
doShutdown();
}
}
private void doShutdown() {
System.out.println("このメソッドを実行してから、終了します");
}
}
■ このスレッドは過去ログ倉庫に格納されています