Class NewThreadWorker

java.lang.Object
io.reactivex.rxjava3.core.Scheduler.Worker
io.reactivex.rxjava3.internal.schedulers.NewThreadWorker
All Implemented Interfaces:
Disposable
Direct Known Subclasses:
ComputationScheduler.PoolWorker, IoScheduler.ThreadWorker

public class NewThreadWorker extends Scheduler.Worker
Base class that manages a single-threaded ScheduledExecutorService as a worker but doesn't perform task-tracking operations.
  • Field Details

  • Constructor Details

    • NewThreadWorker

      public NewThreadWorker(ThreadFactory threadFactory)
  • Method Details

    • schedule

      Description copied from class: Scheduler.Worker
      Schedules a Runnable for execution without any time delay.

      The default implementation delegates to Scheduler.Worker.schedule(Runnable, long, TimeUnit).

      Overrides:
      schedule in class Scheduler.Worker
      Parameters:
      run - Runnable to schedule
      Returns:
      a Disposable to be able to unsubscribe the action (cancel it if not executed)
    • schedule

      @NonNull public @NonNull Disposable schedule(@NonNull @NonNull Runnable action, long delayTime, @NonNull @NonNull TimeUnit unit)
      Description copied from class: Scheduler.Worker
      Schedules an Runnable for execution at some point in the future specified by a time delay relative to the current time.

      Note to implementors: non-positive delayTime should be regarded as non-delayed schedule, i.e., as if the Scheduler.Worker.schedule(Runnable) was called.

      Specified by:
      schedule in class Scheduler.Worker
      Parameters:
      action - the Runnable to schedule
      delayTime - time to "wait" before executing the action; non-positive values indicate an non-delayed schedule
      unit - the time unit of delayTime
      Returns:
      a Disposable to be able to unsubscribe the action (cancel it if not executed)
    • scheduleDirect

      public Disposable scheduleDirect(Runnable run, long delayTime, TimeUnit unit)
      Schedules the given runnable on the underlying executor directly and returns its future wrapped into a Disposable.
      Parameters:
      run - the Runnable to execute in a delayed fashion
      delayTime - the delay amount
      unit - the delay time unit
      Returns:
      the ScheduledRunnable instance
    • schedulePeriodicallyDirect

      public Disposable schedulePeriodicallyDirect(Runnable run, long initialDelay, long period, TimeUnit unit)
      Schedules the given runnable periodically on the underlying executor directly and returns its future wrapped into a Disposable.
      Parameters:
      run - the Runnable to execute in a periodic fashion
      initialDelay - the initial delay amount
      period - the repeat period amount
      unit - the time unit for both the initialDelay and period
      Returns:
      the ScheduledRunnable instance
    • scheduleActual

      @NonNull public @NonNull ScheduledRunnable scheduleActual(Runnable run, long delayTime, @NonNull @NonNull TimeUnit unit, @Nullable @Nullable DisposableContainer parent)
      Wraps and returns the given runnable into a ScheduledRunnable and schedules it on the underlying ScheduledExecutorService.
      Parameters:
      run - the runnable instance
      delayTime - the time to delay the execution
      unit - the time unit
      parent - the optional tracker parent to add the created ScheduledRunnable instance to before it gets scheduled
      Returns:
      the ScheduledRunnable instance
    • dispose

      public void dispose()
      Description copied from interface: Disposable
      Dispose the resource, the operation should be idempotent.
    • shutdown

      public void shutdown()
      Shuts down the underlying executor in a non-interrupting fashion.
    • isDisposed

      public boolean isDisposed()
      Description copied from interface: Disposable
      Returns true if this resource has been disposed.
      Returns:
      true if this resource has been disposed