Class ReservedThreadExecutor

java.lang.Object
org.eclipse.jetty.util.component.AbstractLifeCycle
org.eclipse.jetty.util.thread.ReservedThreadExecutor
All Implemented Interfaces:
Executor, Dumpable, LifeCycle, TryExecutor

@ManagedObject("A pool for reserved threads") @Deprecated(since="2021-05-27") public class ReservedThreadExecutor extends AbstractLifeCycle implements TryExecutor, Dumpable
Deprecated.
The Eclipse Jetty and Apache Felix Http Jetty packages are no longer supported.

A TryExecutor using pre-allocated/reserved threads from an external Executor.

Calls to tryExecute(Runnable) on ReservedThreadExecutor will either succeed with a reserved thread immediately being assigned the task, or fail if no reserved thread is available.

Threads are reserved lazily, with new reserved threads being allocated from the external Executor passed to the constructor. Whenever 1 or more reserved threads have been idle for more than getIdleTimeoutMs() then one reserved thread will return to the external Executor.

  • Constructor Details

    • ReservedThreadExecutor

      public ReservedThreadExecutor(Executor executor, int capacity)
      Deprecated.
      Parameters:
      executor - The executor to use to obtain threads
      capacity - The number of threads to preallocate. If less than 0 then capacity is calculated based on a heuristic from the number of available processors and thread pool size.
  • Method Details

    • getExecutor

      public Executor getExecutor()
      Deprecated.
    • getCapacity

      @ManagedAttribute(value="max number of reserved threads", readonly=true) public int getCapacity()
      Deprecated.
      Returns:
      the maximum number of reserved threads
    • getAvailable

      @ManagedAttribute(value="available reserved threads", readonly=true) public int getAvailable()
      Deprecated.
      Returns:
      the number of threads available to tryExecute(Runnable)
    • getPending

      @ManagedAttribute(value="pending reserved threads", readonly=true) public int getPending()
      Deprecated.
    • getIdleTimeoutMs

      @ManagedAttribute(value="idle timeout in ms", readonly=true) public long getIdleTimeoutMs()
      Deprecated.
    • setIdleTimeout

      public void setIdleTimeout(long idleTime, TimeUnit idleTimeUnit)
      Deprecated.
      Set the idle timeout for shrinking the reserved thread pool
      Parameters:
      idleTime - Time to wait before shrinking, or 0 for default timeout.
      idleTimeUnit - Time units for idle timeout
    • doStart

      public void doStart() throws Exception
      Deprecated.
      Throws:
      Exception
    • doStop

      public void doStop() throws Exception
      Deprecated.
      Throws:
      Exception
    • execute

      public void execute(Runnable task) throws RejectedExecutionException
      Deprecated.
      Specified by:
      execute in interface Executor
      Specified by:
      execute in interface TryExecutor
      Throws:
      RejectedExecutionException
    • tryExecute

      public boolean tryExecute(Runnable task)
      Deprecated.

      Executes the given task if and only if a reserved thread is available.

      Specified by:
      tryExecute in interface TryExecutor
      Parameters:
      task - the task to run
      Returns:
      true if and only if a reserved thread was available and has been assigned the task to run.
    • dump

      public void dump(Appendable out, String indent) throws IOException
      Deprecated.
      Description copied from interface: Dumpable
      Dump this object (and children) into an Appendable using the provided indent after any new lines. The indent should not be applied to the first object dumped.
      Specified by:
      dump in interface Dumpable
      Parameters:
      out - The appendable to dump to
      indent - The indent to apply after any new lines.
      Throws:
      IOException - if unable to write to Appendable
    • toString

      public String toString()
      Deprecated.
      Overrides:
      toString in class AbstractLifeCycle