|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Object![]()
![]()
![]()
java.util.concurrent.AbstractExecutorService
![]()
![]()
![]()
java.util.concurrent.ThreadPoolExecutor
![]()
![]()
![]()
java.util.concurrent.ScheduledThreadPoolExecutor
, ExecutorService
, ScheduledExecutorService

public class ScheduledThreadPoolExecutor


A ThreadPoolExecutor
that can additionally schedule
commands to run after a given delay, or to execute
periodically. This class is preferable to Timer
when multiple worker threads are needed, or when the additional
flexibility or capabilities of ThreadPoolExecutor
(which
this class extends) are required.
Delayed tasks execute no sooner than they are enabled, but without any real-time guarantees about when, after they are enabled, they will commence. Tasks scheduled for exactly the same execution time are enabled in first-in-first-out (FIFO) order of submission.
While this class inherits from ThreadPoolExecutor
, a few
of the inherited tuning methods are not useful for it. In
particular, because it acts as a fixed-sized pool using
corePoolSize threads and an unbounded queue, adjustments
to maximumPoolSize have no useful effect.
| Nested Class Summary |
|---|
Nested classes/interfaces inherited from class java.util.concurrent.ThreadPoolExecutor ![]() |
|---|
ThreadPoolExecutor.AbortPolicy |
| Constructor Summary | |
|---|---|
ScheduledThreadPoolExecutor
Creates a new ScheduledThreadPoolExecutor with the given core pool size. |
|
ScheduledThreadPoolExecutor
Creates a new ScheduledThreadPoolExecutor with the given initial parameters. |
|
ScheduledThreadPoolExecutor
Creates a new ScheduledThreadPoolExecutor with the given initial parameters. |
|
ScheduledThreadPoolExecutor
Creates a new ScheduledThreadPoolExecutor with the given initial parameters. |
|
| Method Summary | ||
|---|---|---|
void |
execute
Execute command with zero required delay. |
|
boolean |
getContinueExistingPeriodicTasksAfterShutdownPolicy
Get the policy on whether to continue executing existing periodic tasks even when this executor has been shutdown. |
|
boolean |
getExecuteExistingDelayedTasksAfterShutdownPolicy
Get policy on whether to execute existing delayed tasks even when this executor has been shutdown. |
|
BlockingQueue |
getQueue
Returns the task queue used by this executor. |
|
boolean |
remove
Removes this task from the executor's internal queue if it is present, thus causing it not to be run if it has not already started. |
|
|
schedule
Creates and executes a ScheduledFuture that becomes enabled after the given delay. |
|
ScheduledFuture |
schedule
Creates and executes a one-shot action that becomes enabled after the given delay. |
|
ScheduledFuture |
scheduleAtFixedRate
Creates and executes a periodic action that becomes enabled first after the given initial delay, and subsequently with the given period; that is executions will commence after initialDelay then initialDelay+period, then initialDelay + 2 * period, and so on. |
|
ScheduledFuture |
scheduleWithFixedDelay
Creates and executes a periodic action that becomes enabled first after the given initial delay, and subsequently with the given delay between the termination of one execution and the commencement of the next. |
|
void |
setContinueExistingPeriodicTasksAfterShutdownPolicy
Set policy on whether to continue executing existing periodic tasks even when this executor has been shutdown. |
|
void |
setExecuteExistingDelayedTasksAfterShutdownPolicy
Set policy on whether to execute existing delayed tasks even when this executor has been shutdown. |
|
void |
shutdown
Initiates an orderly shutdown in which previously submitted tasks are executed, but no new tasks will be accepted. |
|
List |
shutdownNow
Attempts to stop all actively executing tasks, halts the processing of waiting tasks, and returns a list of the tasks that were awaiting execution. |
|
|
submit
Submits a value-returning task for execution and returns a Future representing the pending results of the task. |
|
Future |
submit
Submits a Runnable task for execution and returns a Future representing that task. |
|
|
submit
Submits a Runnable task for execution and returns a Future representing that task that will upon completion return the given result |
|
Methods inherited from class java.util.concurrent.ThreadPoolExecutor ![]() |
|---|
afterExecute |
Methods inherited from class java.util.concurrent.AbstractExecutorService ![]() |
|---|
invokeAll |
Methods inherited from class java.lang.Object ![]() |
|---|
clone |
Methods inherited from interface java.util.concurrent.ExecutorService ![]() |
|---|
awaitTermination |
| Constructor Detail |
|---|

public ScheduledThreadPoolExecutor(int corePoolSize)
corePoolSize - the number of threads to keep in the pool,
even if they are idle.
IllegalArgumentException

- if corePoolSize less than or
equal to zero

public ScheduledThreadPoolExecutor(int corePoolSize,
ThreadFactory
threadFactory)
corePoolSize - the number of threads to keep in the pool,
even if they are idle.threadFactory - the factory to use when the executor
creates a new thread.
NullPointerException

- if threadFactory is null

public ScheduledThreadPoolExecutor(int corePoolSize,
RejectedExecutionHandler
handler)
corePoolSize - the number of threads to keep in the pool,
even if they are idle.handler - the handler to use when execution is blocked
because the thread bounds and queue capacities are reached.
NullPointerException

- if handler is null

public ScheduledThreadPoolExecutor(int corePoolSize,
ThreadFactory
threadFactory,
RejectedExecutionHandler
handler)
corePoolSize - the number of threads to keep in the pool,
even if they are idle.threadFactory - the factory to use when the executor
creates a new thread.handler - the handler to use when execution is blocked
because the thread bounds and queue capacities are reached.
NullPointerException

- if threadFactory or handler is null| Method Detail |
|---|

public boolean remove(Runnable![]()
![]()
task)
ThreadPoolExecutor

This method may be useful as one part of a cancellation
scheme. It may fail to remove tasks that have been converted
into other forms before being placed on the internal queue. For
example, a task entered using submit might be
converted into a form that maintains Future status.
However, in such cases, method ThreadPoolExecutor.purge()
may be used to remove those Futures that have been cancelled.
remove

in class ThreadPoolExecutor

task - the task to remove