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
}}
-
コンストラクタのサマリー
-
メソッドのサマリー
修飾子と型メソッド説明void
executorがシャットダウンしないかぎり、タスクがすぐに利用可能な場合にexecutorが実行するはずの次のタスクを取得して無視し、タスクrの実行を再度試みます。シャットダウンしている場合、タスクrは破棄されます。
-
コンストラクタの詳細
-
DiscardOldestPolicy
public DiscardOldestPolicy()指定されたexecutorのDiscardOldestPolicy
を作成します。
-
-
メソッドの詳細
-
rejectedExecution
public void rejectedExecution(Runnable r, ThreadPoolExecutor e) executorがシャットダウンしないかぎり、タスクがすぐに利用可能な場合にexecutorが実行するはずの次のタスクを取得して無視し、タスクrの実行を再度試みます。シャットダウンしている場合、タスクrは破棄されます。- 定義:
rejectedExecution
、インタフェース:RejectedExecutionHandler
- パラメータ:
r
- 実行されることを要求された実行可能なタスクe
- このタスクの実行を試みるexecutor
-