RejectedExecutionHandler

  • RejectedExecutionHandler is an interface used to handle tasks that a ThreadPoolExecutor cannot execute.

  • It defines a single method, rejectedExecution, which is invoked when a task is rejected.

  • Implementations of this interface provide custom logic for handling rejected tasks, such as discarding, re-queuing, or throwing an exception.

  • Four built-in implementations are available: AbortPolicy, CallerRunsPolicy, DiscardOldestPolicy, and DiscardPolicy.

  • rejectedExecution is called when a ThreadPoolExecutor is saturated or shut down, providing a mechanism to manage task overflow.

public interface RejectedExecutionHandler
Known Indirect Subclasses

A handler for tasks that cannot be executed by a ThreadPoolExecutor.

Public Method Summary

abstract void
rejectedExecution(Runnable r, ThreadPoolExecutor executor)
Method that may be invoked by a ThreadPoolExecutor when execute cannot accept a task.

Public Methods

public abstract void rejectedExecution (Runnable r, ThreadPoolExecutor executor)

Method that may be invoked by a ThreadPoolExecutor when execute cannot accept a task. This may occur when no more threads or queue slots are available because their bounds would be exceeded, or upon shutdown of the Executor.

In the absence of other alternatives, the method may throw an unchecked RejectedExecutionException, which will be propagated to the caller of execute.

Parameters
r the runnable task requested to be executed
executor the executor attempting to execute this task
Throws
RejectedExecutionException if there is no remedy