Interface BackgroundResource

All Superinterfaces:
AutoCloseable
All Known Subinterfaces:
TransportChannel
All Known Implementing Classes:
BackgroundResourceAggregation, BaseBackgroundResource, ExecutorAsBackgroundResource, Watchdog

public interface BackgroundResource extends AutoCloseable
Represents a resource running in the background that needs to be shut down for resources to be released.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    awaitTermination(long duration, TimeUnit unit)
    Blocks until all work has completed execution after a shutdown request, or the timeout occurs, or the current thread is interrupted, whichever happens first.
    boolean
    Returns true if this background resource has been shut down.
    boolean
    Returns true if all work has completed following shut down.
    void
    Initiates an orderly shutdown in which previously submitted work is finished, but no new work will be accepted.
    void
    Attempts to stop all actively executing work and halts the processing of waiting work.

    Methods inherited from interface java.lang.AutoCloseable

    close
  • Method Details

    • shutdown

      void shutdown()
      Initiates an orderly shutdown in which previously submitted work is finished, but no new work will be accepted. Invocation has no additional effect if already shut down.

      This method does not wait for previously submitted work to complete execution. Use awaitTermination to do that.

    • isShutdown

      boolean isShutdown()
      Returns true if this background resource has been shut down.
    • isTerminated

      boolean isTerminated()
      Returns true if all work has completed following shut down. Note that isTerminated is never true unless either shutdown or shutdownNow was called first.
    • shutdownNow

      void shutdownNow()
      Attempts to stop all actively executing work and halts the processing of waiting work.

      This method does not wait for actively executing work to terminate. Use awaitTermination to do that.

      There are no guarantees beyond best-effort attempts to stop processing actively executing work. For example, typical implementations will cancel via Thread.interrupt(), so any task that fails to respond to interrupts may never terminate.

    • awaitTermination

      boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException
      Blocks until all work has completed execution after a shutdown request, or the timeout occurs, or the current thread is interrupted, whichever happens first.
      Throws:
      InterruptedException