モジュール java.base
パッケージ java.util.concurrent

クラスThreadPoolExecutor.DiscardOldestPolicy

java.lang.Object
java.util.concurrent.ThreadPoolExecutor.DiscardOldestPolicy
すべての実装されたインタフェース:
RejectedExecutionHandler
含まれているクラス:
ThreadPoolExecutor

public static class ThreadPoolExecutor.DiscardOldestPolicy extends Object implements RejectedExecutionHandler
executorがシャットダウンしていない場合に、もっとも古い未処理の要求を破棄してexecuteを再試行する、拒否されたタスクのハンドラです。シャットダウンしている場合、タスクは破棄されます。 このポリシーは、他のスレッドがタスクの終了を待機している場合や、失敗を記録する必要がある場合には、まれに便利です。 かわりに、フォームのハンドラの使用を検討してください:
 
 new RejectedExecutionHandler() {
   public void rejectedExecution(Runnable r, ThreadPoolExecutor e) {
     Runnable dropped = e.getQueue().poll();
     if (dropped instanceof Future<?>) {
       ((Future<?>)dropped).cancel(false);
       // also consider logging the failure
     }
     e.execute(r);  // retry
 }}