ScheduledThreadPoolExecutor を使用し、ジョブを送信した後、すぐにシャットダウンを呼び出します。ドキュメントによると、シャットダウンは送信されたタスクを強制終了せず、実行中のタスクを完了させます。
問題は、ScheduledThreadPoolExecutor サブミットが返す将来のオブジェクトをシャットダウン後も引き続き使用できるかどうかです。
private static Future submitACall(Callable callableDelegate) {
ScheduledThreadPoolExecutor threadPoolExe = null;
試す {
threadPoolExe = 新しい ScheduledThreadPoolExecutor(1);
return threadPoolExe.submit(callableDelegate);
} 最後に {
threadPoolExe.shutdown();
}
}
//別のメソッドで...
if(future.isDone())
future.get();