Class AbstractThreadPoolStrategy
java.lang.Object
org.apache.maven.surefire.junitcore.pc.SchedulingStrategy
org.apache.maven.surefire.junitcore.pc.AbstractThreadPoolStrategy
- All Implemented Interfaces:
Destroyable
- Direct Known Subclasses:
NonSharedThreadPoolStrategy,SharedThreadPoolStrategy
Abstract parallel scheduling strategy in private package.
The remaining abstract methods have to be implemented differently
depending if the thread pool is shared with other strategies or not.
- Since:
- 2.16
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Collection<Future<?>>private booleanprivate final ExecutorService -
Constructor Summary
ConstructorsConstructorDescriptionAbstractThreadPoolStrategy(ConsoleLogger logger, ExecutorService threadPool) AbstractThreadPoolStrategy(ConsoleLogger logger, ExecutorService threadPool, Collection<Future<?>> futureResults) -
Method Summary
Modifier and TypeMethodDescriptionbooleandestroy()protected final Collection<Future<?>>protected final ExecutorServicevoidSchedules tasks ifSchedulingStrategy.canSchedule().protected voidprotected booleanstop()Stops scheduling new tasks (e.g.protected booleanstopNow()Stops scheduling new tasks andinterruptsrunning tasks (e.g.Methods inherited from class org.apache.maven.surefire.junitcore.pc.SchedulingStrategy
canSchedule, disable, finished, hasSharedThreadPool, logQuietly
-
Field Details
-
threadPool
-
futureResults
-
isDestroyed
private volatile boolean isDestroyed
-
-
Constructor Details
-
AbstractThreadPoolStrategy
AbstractThreadPoolStrategy(ConsoleLogger logger, ExecutorService threadPool) -
AbstractThreadPoolStrategy
AbstractThreadPoolStrategy(ConsoleLogger logger, ExecutorService threadPool, Collection<Future<?>> futureResults)
-
-
Method Details
-
getThreadPool
-
getFutureResults
-
schedule
Description copied from class:SchedulingStrategySchedules tasks ifSchedulingStrategy.canSchedule().- Specified by:
schedulein classSchedulingStrategy- Parameters:
task- runnable to schedule in a thread pool or invoke- See Also:
-
RunnerScheduler.schedule(Runnable)Executor.execute(Runnable)
-
stop
protected boolean stop()Description copied from class:SchedulingStrategyStops scheduling new tasks (e.g. byExecutorService.shutdown()on a private thread pool which cannot be shared with other strategy).- Specified by:
stopin classSchedulingStrategy- Returns:
trueif successfully stopped the scheduler, elsefalseif already stopped (a shared thread pool was shutdown externally).- See Also:
-
stopNow
protected boolean stopNow()Description copied from class:SchedulingStrategyStops scheduling new tasks andinterruptsrunning tasks (e.g. byExecutorService.shutdownNow()on a private thread pool which cannot be shared with other strategy).
This method callsSchedulingStrategy.stop()by default.- Overrides:
stopNowin classSchedulingStrategy- Returns:
trueif successfully stopped the scheduler, elsefalseif already stopped (a shared thread pool was shutdown externally).- See Also:
-
setDefaultShutdownHandler
- Overrides:
setDefaultShutdownHandlerin classSchedulingStrategy- See Also:
-
destroy
public boolean destroy()Description copied from interface:DestroyableCallingThreadPoolExecutor.shutdown()andThreadPoolExecutor.awaitTermination(long, java.util.concurrent.TimeUnit).- Returns:
trueif not interrupted in current thread
-