Package org.ros.concurrent
Class DefaultScheduledExecutorService
java.lang.Object
org.ros.concurrent.DefaultScheduledExecutorService
- All Implemented Interfaces:
Executor,ExecutorService,ScheduledExecutorService
This wraps a
Executors.newCachedThreadPool() and a
Executors.newScheduledThreadPool(int) to provide the functionality of
both in a single ScheduledExecutorService. This is necessary since
the ScheduledExecutorService uses an unbounded queue which makes it
impossible to create an unlimited number of threads on demand (as explained
in the ThreadPoolExecutor class javadoc.- Author:
- damonkohler@google.com (Damon Kohler)
-
Constructor Summary
ConstructorsConstructorDescriptionDefaultScheduledExecutorService(ExecutorService executorService) This instance will take over the lifecycle of the services.DefaultScheduledExecutorService(ExecutorService executorService, ScheduledExecutorService scheduledExecutorService) This instance will take over the lifecycle of the services. -
Method Summary
Modifier and TypeMethodDescriptionbooleanawaitTermination(long timeout, TimeUnit unit) First callsawaitTermination(long, TimeUnit)on the wrappedExecutorServiceand thenawaitTermination(long, TimeUnit)on the wrappedScheduledExecutorService.voidinvokeAll(Collection<? extends Callable<T>> tasks) invokeAll(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) <T> TinvokeAny(Collection<? extends Callable<T>> tasks) <T> TinvokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) booleanboolean<V> ScheduledFuture<V>scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit) scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit) voidshutdown()Future<?><T> Future<T><T> Future<T>
-
Constructor Details
-
DefaultScheduledExecutorService
public DefaultScheduledExecutorService() -
DefaultScheduledExecutorService
This instance will take over the lifecycle of the services.- Parameters:
executorService-
-
DefaultScheduledExecutorService
public DefaultScheduledExecutorService(ExecutorService executorService, ScheduledExecutorService scheduledExecutorService) This instance will take over the lifecycle of the services.- Parameters:
executorService-scheduledExecutorService-
-
-
Method Details
-
shutdown
public void shutdown()- Specified by:
shutdownin interfaceExecutorService
-
shutdownNow
- Specified by:
shutdownNowin interfaceExecutorService
-
isShutdown
public boolean isShutdown()- Specified by:
isShutdownin interfaceExecutorService
-
isTerminated
public boolean isTerminated()- Specified by:
isTerminatedin interfaceExecutorService
-
awaitTermination
First callsawaitTermination(long, TimeUnit)on the wrappedExecutorServiceand thenawaitTermination(long, TimeUnit)on the wrappedScheduledExecutorService.- Specified by:
awaitTerminationin interfaceExecutorService- Returns:
trueif bothExecutors terminated,falseotherwise- Throws:
InterruptedException
-
submit
- Specified by:
submitin interfaceExecutorService
-
submit
- Specified by:
submitin interfaceExecutorService
-
submit
- Specified by:
submitin interfaceExecutorService
-
invokeAll
public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks) throws InterruptedException - Specified by:
invokeAllin interfaceExecutorService- Throws:
InterruptedException
-
invokeAll
public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException - Specified by:
invokeAllin interfaceExecutorService- Throws:
InterruptedException
-
invokeAny
public <T> T invokeAny(Collection<? extends Callable<T>> tasks) throws InterruptedException, ExecutionException - Specified by:
invokeAnyin interfaceExecutorService- Throws:
InterruptedExceptionExecutionException
-
invokeAny
public <T> T invokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException - Specified by:
invokeAnyin interfaceExecutorService- Throws:
InterruptedExceptionExecutionExceptionTimeoutException
-
execute
-
schedule
- Specified by:
schedulein interfaceScheduledExecutorService
-
schedule
- Specified by:
schedulein interfaceScheduledExecutorService
-
scheduleAtFixedRate
public ScheduledFuture<?> scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit) - Specified by:
scheduleAtFixedRatein interfaceScheduledExecutorService
-
scheduleWithFixedDelay
public ScheduledFuture<?> scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit) - Specified by:
scheduleWithFixedDelayin interfaceScheduledExecutorService
-