1 /*
2  * Written by Doug Lea with assistance from members of JCP JSR-166
3  * Expert Group and released to the public domain, as explained at
4  * http://creativecommons.org/publicdomain/zero/1.0/
5  */
6 
7 package java.util.concurrent;
8 
9 /**
10  * A handler for tasks that cannot be executed by a {@link ThreadPoolExecutor}.
11  *
12  * @since 1.5
13  * @author Doug Lea
14  */
15 public interface RejectedExecutionHandler {
16 
17     /**
18      * Method that may be invoked by a {@link ThreadPoolExecutor} when
19      * {@link ThreadPoolExecutor#execute execute} cannot accept a
20      * task.  This may occur when no more threads or queue slots are
21      * available because their bounds would be exceeded, or upon
22      * shutdown of the Executor.
23      *
24      * <p>In the absence of other alternatives, the method may throw
25      * an unchecked {@link RejectedExecutionException}, which will be
26      * propagated to the caller of {@code execute}.
27      *
28      * @param r the runnable task requested to be executed
29      * @param executor the executor attempting to execute this task
30      * @throws RejectedExecutionException if there is no remedy
31      */
rejectedExecution(Runnable r, ThreadPoolExecutor executor)32     void rejectedExecution(Runnable r, ThreadPoolExecutor executor);
33 }
34