Home | History | Annotate | Download | only in concurrent
      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