abstract class AbstractThreadPoolStrategy extends SchedulingStrategy
SchedulingStrategy
,
SharedThreadPoolStrategy
,
NonSharedThreadPoolStrategy
Modifier and Type | Field and Description |
---|---|
private java.util.Collection<java.util.concurrent.Future<?>> |
futureResults |
private boolean |
isDestroyed |
private java.util.concurrent.ExecutorService |
threadPool |
Constructor and Description |
---|
AbstractThreadPoolStrategy(ConsoleLogger logger,
java.util.concurrent.ExecutorService threadPool) |
AbstractThreadPoolStrategy(ConsoleLogger logger,
java.util.concurrent.ExecutorService threadPool,
java.util.Collection<java.util.concurrent.Future<?>> futureResults) |
Modifier and Type | Method and Description |
---|---|
boolean |
destroy()
Calling
ThreadPoolExecutor.shutdown()
and ThreadPoolExecutor.awaitTermination(long, java.util.concurrent.TimeUnit) . |
protected java.util.Collection<java.util.concurrent.Future<?>> |
getFutureResults() |
protected java.util.concurrent.ExecutorService |
getThreadPool() |
void |
schedule(java.lang.Runnable task)
Schedules tasks if
SchedulingStrategy.canSchedule() . |
protected void |
setDefaultShutdownHandler(Scheduler.ShutdownHandler handler) |
protected boolean |
stop()
Stops scheduling new tasks (e.g.
|
protected boolean |
stopNow()
Stops scheduling new tasks and interrupts running tasks
(e.g.
|
canSchedule, disable, finished, hasSharedThreadPool, logQuietly
private final java.util.concurrent.ExecutorService threadPool
private final java.util.Collection<java.util.concurrent.Future<?>> futureResults
private volatile boolean isDestroyed
AbstractThreadPoolStrategy(ConsoleLogger logger, java.util.concurrent.ExecutorService threadPool)
AbstractThreadPoolStrategy(ConsoleLogger logger, java.util.concurrent.ExecutorService threadPool, java.util.Collection<java.util.concurrent.Future<?>> futureResults)
protected final java.util.concurrent.ExecutorService getThreadPool()
protected final java.util.Collection<java.util.concurrent.Future<?>> getFutureResults()
public void schedule(java.lang.Runnable task)
SchedulingStrategy
SchedulingStrategy.canSchedule()
.schedule
in class SchedulingStrategy
task
- runnable to schedule in a thread pool or invokeRunnerScheduler.schedule(Runnable)
,
Executor.execute(Runnable)
protected boolean stop()
SchedulingStrategy
ExecutorService.shutdown()
on a private thread pool which cannot be shared with other strategy).stop
in class SchedulingStrategy
ExecutorService.shutdown()
protected boolean stopNow()
SchedulingStrategy
ExecutorService.shutdownNow()
on a private thread pool
which cannot be shared with other strategy).
This method calls SchedulingStrategy.stop()
by default.stopNow
in class SchedulingStrategy
ExecutorService.shutdownNow()
protected void setDefaultShutdownHandler(Scheduler.ShutdownHandler handler)
setDefaultShutdownHandler
in class SchedulingStrategy
Scheduler.ShutdownHandler
public boolean destroy()
Destroyable
ThreadPoolExecutor.shutdown()
and ThreadPoolExecutor.awaitTermination(long, java.util.concurrent.TimeUnit)
.true
if not interrupted in current thread