01: /*
02: * Written by Doug Lea with assistance from members of JCP JSR-166
03: * Expert Group and released to the public domain, as explained at
04: * http://creativecommons.org/licenses/publicdomain
05: */
06:
07: package java.util.concurrent;
08:
09: /**
10: * A handler for tasks that cannot be executed by a {@link
11: * ThreadPoolExecutor}.
12: *
13: * @since 1.5
14: * @author Doug Lea
15: */
16: public interface RejectedExecutionHandler {
17:
18: /**
19: * Method that may be invoked by a {@link ThreadPoolExecutor} when
20: * <tt>execute</tt> cannot accept a task. This may occur when no
21: * more threads or queue slots are available because their bounds
22: * would be exceeded, or upon shutdown of the Executor.
23: *
24: * In the absence other alternatives, the method may throw an
25: * unchecked {@link RejectedExecutionException}, which will be
26: * propagated to the caller of <tt>execute</tt>.
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: }
|