Interface ScheduledExecutorService

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      ScheduledFuture<?> schedule​(java.lang.Runnable command, long delay, java.util.concurrent.TimeUnit unit)
      Creates and executes a one-shot action that becomes enabled after the given delay.
      <V> ScheduledFuture<V> schedule​(java.util.concurrent.Callable<V> callable, long delay, java.util.concurrent.TimeUnit unit)
      Creates and executes a ScheduledFuture that becomes enabled after the given delay.
      ScheduledFuture<?> scheduleAtFixedRate​(java.lang.Runnable command, long initialDelay, long period, java.util.concurrent.TimeUnit unit)
      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​(java.lang.Runnable command, long initialDelay, long delay, java.util.concurrent.TimeUnit unit)
      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.
      • Methods inherited from interface java.util.concurrent.Executor

        execute
      • Methods inherited from interface java.util.concurrent.ExecutorService

        awaitTermination, invokeAll, invokeAll, invokeAny, invokeAny, isShutdown, isTerminated, shutdown, shutdownNow
    • Method Detail

      • schedule

        @Nonnull
        ScheduledFuture<?> schedule​(@Nonnull
                                    java.lang.Runnable command,
                                    long delay,
                                    @Nonnull
                                    java.util.concurrent.TimeUnit unit)
        Creates and executes a one-shot action that becomes enabled after the given delay.
        Specified by:
        schedule in interface java.util.concurrent.ScheduledExecutorService
        Parameters:
        command - the task to execute
        delay - the time from now to delay execution
        unit - the time unit of the delay parameter
        Returns:
        a ScheduledFuture representing pending completion of the task and whose get() method will return null upon completion
        Throws:
        RejectedExecutionException - if the task cannot be scheduled for execution
        java.lang.NullPointerException - if command is null
      • schedule

        @Nonnull
        <V> ScheduledFuture<V> schedule​(@Nonnull
                                        java.util.concurrent.Callable<V> callable,
                                        long delay,
                                        @Nonnull
                                        java.util.concurrent.TimeUnit unit)
        Creates and executes a ScheduledFuture that becomes enabled after the given delay.
        Specified by:
        schedule in interface java.util.concurrent.ScheduledExecutorService
        Type Parameters:
        V - the type of the callable's result
        Parameters:
        callable - the function to execute
        delay - the time from now to delay execution
        unit - the time unit of the delay parameter
        Returns:
        a ScheduledFuture that can be used to extract result or cancel
        Throws:
        RejectedExecutionException - if the task cannot be scheduled for execution
        java.lang.NullPointerException - if callable is null
      • scheduleAtFixedRate

        @Nonnull
        ScheduledFuture<?> scheduleAtFixedRate​(@Nonnull
                                               java.lang.Runnable command,
                                               long initialDelay,
                                               long period,
                                               @Nonnull
                                               java.util.concurrent.TimeUnit unit)
        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. If any execution of the task encounters an exception, subsequent executions are suppressed. Otherwise, the task will only terminate via cancellation or termination of the executor. If any execution of this task takes longer than its period, then subsequent executions may start late, but will not concurrently execute.
        Specified by:
        scheduleAtFixedRate in interface java.util.concurrent.ScheduledExecutorService
        Parameters:
        command - the task to execute
        initialDelay - the time to delay first execution
        period - the period between successive executions
        unit - the time unit of the initialDelay and period parameters
        Returns:
        a ScheduledFuture representing pending completion of the task, and whose get() method will throw an exception upon cancellation
        Throws:
        RejectedExecutionException - if the task cannot be scheduled for execution
        java.lang.NullPointerException - if command is null
        java.lang.IllegalArgumentException - if period less than or equal to zero
      • scheduleWithFixedDelay

        @Nonnull
        ScheduledFuture<?> scheduleWithFixedDelay​(@Nonnull
                                                  java.lang.Runnable command,
                                                  long initialDelay,
                                                  long delay,
                                                  @Nonnull
                                                  java.util.concurrent.TimeUnit unit)
        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. If any execution of the task encounters an exception, subsequent executions are suppressed. Otherwise, the task will only terminate via cancellation or termination of the executor.
        Specified by:
        scheduleWithFixedDelay in interface java.util.concurrent.ScheduledExecutorService
        Parameters:
        command - the task to execute
        initialDelay - the time to delay first execution
        delay - the delay between the termination of one execution and the commencement of the next
        unit - the time unit of the initialDelay and delay parameters
        Returns:
        a ScheduledFuture representing pending completion of the task, and whose get() method will throw an exception upon cancellation
        Throws:
        RejectedExecutionException - if the task cannot be scheduled for execution
        java.lang.NullPointerException - if command is null
        java.lang.IllegalArgumentException - if delay less than or equal to zero