Class UnboundedScheduledExecutorService

  • All Implemented Interfaces:
    java.util.concurrent.Executor, java.util.concurrent.ExecutorService, java.util.concurrent.ScheduledExecutorService

    public final class UnboundedScheduledExecutorService
    extends java.lang.Object
    implements java.util.concurrent.ScheduledExecutorService
    An unbounded ScheduledExecutorService based upon the ScheduledThreadPoolExecutor API contract.

    Note that this implementation differs from a ScheduledThreadPoolExecutor in the following ways:

    • The core pool size is always 0.
    • Any work that is immediately executable is given to a thread before returning from the corresponding execute, submit, schedule* methods.
    • An unbounded number of threads can be started.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean awaitTermination​(long timeout, java.util.concurrent.TimeUnit unit)  
      void execute​(java.lang.Runnable command)  
      <@KeyForBottom T>
      java.util.List<java.util.concurrent.Future<T>>
      invokeAll​(java.util.Collection<? extends java.util.concurrent.Callable<@KeyForBottom T>> tasks)  
      <@KeyForBottom T>
      java.util.List<java.util.concurrent.Future<T>>
      invokeAll​(java.util.Collection<? extends java.util.concurrent.Callable<@KeyForBottom T>> tasks, long timeout, java.util.concurrent.TimeUnit unit)  
      <@KeyForBottom T>
      T
      invokeAny​(java.util.Collection<? extends java.util.concurrent.Callable<@KeyForBottom T>> tasks)  
      <@KeyForBottom T>
      T
      invokeAny​(java.util.Collection<? extends java.util.concurrent.Callable<@KeyForBottom T>> tasks, long timeout, java.util.concurrent.TimeUnit unit)  
      boolean isShutdown()  
      boolean isTerminated()  
      java.util.concurrent.ScheduledFuture<?> schedule​(java.lang.Runnable command, long delay, java.util.concurrent.TimeUnit unit)  
      <@Nullable @KeyForBottom V>
      java.util.concurrent.ScheduledFuture<V>
      schedule​(java.util.concurrent.Callable<@Nullable @KeyForBottom V> callable, long delay, java.util.concurrent.TimeUnit unit)  
      java.util.concurrent.ScheduledFuture<?> scheduleAtFixedRate​(java.lang.Runnable command, long initialDelay, long period, java.util.concurrent.TimeUnit unit)  
      java.util.concurrent.ScheduledFuture<?> scheduleWithFixedDelay​(java.lang.Runnable command, long initialDelay, long delay, java.util.concurrent.TimeUnit unit)  
      void shutdown()  
      java.util.List<java.lang.Runnable> shutdownNow()  
      java.util.concurrent.Future<?> submit​(java.lang.Runnable command)  
      <@Nullable @KeyForBottom T>
      java.util.concurrent.Future<T>
      submit​(java.lang.Runnable command, @Nullable @KeyForBottom T result)  
      <@Nullable @KeyForBottom T>
      java.util.concurrent.Future<T>
      submit​(java.util.concurrent.Callable<@Nullable @KeyForBottom T> command)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • UnboundedScheduledExecutorService

        public UnboundedScheduledExecutorService()
    • Method Detail

      • shutdown

        public void shutdown()
        Specified by:
        shutdown in interface java.util.concurrent.ExecutorService
      • shutdownNow

        public java.util.List<java.lang.Runnable> shutdownNow()
        Specified by:
        shutdownNow in interface java.util.concurrent.ExecutorService
      • isShutdown

        public boolean isShutdown()
        Specified by:
        isShutdown in interface java.util.concurrent.ExecutorService
      • isTerminated

        public boolean isTerminated()
        Specified by:
        isTerminated in interface java.util.concurrent.ExecutorService
      • awaitTermination

        public boolean awaitTermination​(long timeout,
                                        java.util.concurrent.TimeUnit unit)
                                 throws java.lang.InterruptedException
        Specified by:
        awaitTermination in interface java.util.concurrent.ExecutorService
        Throws:
        java.lang.InterruptedException
      • execute

        public void execute​(java.lang.Runnable command)
        Specified by:
        execute in interface java.util.concurrent.Executor
      • submit

        public java.util.concurrent.Future<?> submit​(java.lang.Runnable command)
        Specified by:
        submit in interface java.util.concurrent.ExecutorService
      • submit

        public <@Nullable @KeyForBottom T> java.util.concurrent.Future<T> submit​(java.lang.Runnable command,
                                                                                 @Nullable @KeyForBottom T result)
        Specified by:
        submit in interface java.util.concurrent.ExecutorService
      • submit

        public <@Nullable @KeyForBottom T> java.util.concurrent.Future<T> submit​(java.util.concurrent.Callable<@Nullable @KeyForBottom T> command)
        Specified by:
        submit in interface java.util.concurrent.ExecutorService
      • invokeAll

        public <@KeyForBottom T> java.util.List<java.util.concurrent.Future<T>> invokeAll​(java.util.Collection<? extends java.util.concurrent.Callable<@KeyForBottom T>> tasks)
                                                                                   throws java.lang.InterruptedException
        Specified by:
        invokeAll in interface java.util.concurrent.ExecutorService
        Throws:
        java.lang.InterruptedException
      • invokeAll

        public <@KeyForBottom T> java.util.List<java.util.concurrent.Future<T>> invokeAll​(java.util.Collection<? extends java.util.concurrent.Callable<@KeyForBottom T>> tasks,
                                                                                          long timeout,
                                                                                          java.util.concurrent.TimeUnit unit)
                                                                                   throws java.lang.InterruptedException
        Specified by:
        invokeAll in interface java.util.concurrent.ExecutorService
        Throws:
        java.lang.InterruptedException
      • invokeAny

        public <@KeyForBottom T> T invokeAny​(java.util.Collection<? extends java.util.concurrent.Callable<@KeyForBottom T>> tasks)
                                      throws java.lang.InterruptedException,
                                             java.util.concurrent.ExecutionException
        Specified by:
        invokeAny in interface java.util.concurrent.ExecutorService
        Throws:
        java.lang.InterruptedException
        java.util.concurrent.ExecutionException
      • invokeAny

        public <@KeyForBottom T> T invokeAny​(java.util.Collection<? extends java.util.concurrent.Callable<@KeyForBottom T>> tasks,
                                             long timeout,
                                             java.util.concurrent.TimeUnit unit)
                                      throws java.lang.InterruptedException,
                                             java.util.concurrent.ExecutionException,
                                             java.util.concurrent.TimeoutException
        Specified by:
        invokeAny in interface java.util.concurrent.ExecutorService
        Throws:
        java.lang.InterruptedException
        java.util.concurrent.ExecutionException
        java.util.concurrent.TimeoutException
      • schedule

        public java.util.concurrent.ScheduledFuture<?> schedule​(java.lang.Runnable command,
                                                                long delay,
                                                                java.util.concurrent.TimeUnit unit)
        Specified by:
        schedule in interface java.util.concurrent.ScheduledExecutorService
      • schedule

        public <@Nullable @KeyForBottom V> java.util.concurrent.ScheduledFuture<V> schedule​(java.util.concurrent.Callable<@Nullable @KeyForBottom V> callable,
                                                                                            long delay,
                                                                                            java.util.concurrent.TimeUnit unit)
        Specified by:
        schedule in interface java.util.concurrent.ScheduledExecutorService
      • scheduleAtFixedRate

        public java.util.concurrent.ScheduledFuture<?> scheduleAtFixedRate​(java.lang.Runnable command,
                                                                           long initialDelay,
                                                                           long period,
                                                                           java.util.concurrent.TimeUnit unit)
        Specified by:
        scheduleAtFixedRate in interface java.util.concurrent.ScheduledExecutorService
      • scheduleWithFixedDelay

        public java.util.concurrent.ScheduledFuture<?> scheduleWithFixedDelay​(java.lang.Runnable command,
                                                                              long initialDelay,
                                                                              long delay,
                                                                              java.util.concurrent.TimeUnit unit)
        Specified by:
        scheduleWithFixedDelay in interface java.util.concurrent.ScheduledExecutorService