結城本のデザインパターンマルチスレッド編の
Two-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("このメソッドを実行してから、終了します");
}
}