完了するまでに時間がかかることがある外部メソッドを呼び出す必要があります。java - ループなしでスレッドが中断されていないかどうかをチェックするか、Thread.sleep()
void doMyStuff(){
// do my stuff
// work is being done by doStuff thread
externalMethod(); // This is external and sometimes takes hours
// I need to check if current thread is interrupted and then return after a certain time
}
しかし、私が従事してスレッドを維持する余裕がないので、私は一定時間後にプロセスを終了する必要があります。私はWebsphere's WorkManager APIの助けを借りて、外部スレッドからdoStuffスレッドを中断することができます。しかし、中断されたスレッドがそれを処理しない限り、割り込み信号を送信するだけでは無駄です。
extenalMethod()
が返すかどうかにかかわらず、一定時間後にdoStuffスレッドをスレッドプールに戻したいと考えています。これはどうすればできますか?
あなたは可能性も、このような便利なLIB:https://google.github.io/guava/releases/snapshot/api/docs/com/google/common/util/concurrent/TimeLimiter.html – Tom