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/licenses/publicdomain 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 */ 32 void rejectedExecution(Runnable r, ThreadPoolExecutor executor); 33 } 34