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.
-
-
Constructor Summary
Constructors Constructor Description NewThreadWorker(java.util.concurrent.ThreadFactory threadFactory)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddispose()Dispose the resource, the operation should be idempotent.booleanisDisposed()Returns true if this resource has been disposed.@NonNull Disposableschedule(@NonNull java.lang.Runnable run)Schedules a Runnable for execution without any time delay.@NonNull Disposableschedule(@NonNull java.lang.Runnable action, long delayTime, @NonNull java.util.concurrent.TimeUnit unit)Schedules an Runnable for execution at some point in the future specified by a time delay relative to the current time.@NonNull ScheduledRunnablescheduleActual(java.lang.Runnable run, long delayTime, @NonNull java.util.concurrent.TimeUnit unit, @Nullable DisposableContainer parent)Wraps and returns the given runnable into a ScheduledRunnable and schedules it on the underlying ScheduledExecutorService.DisposablescheduleDirect(java.lang.Runnable run, long delayTime, java.util.concurrent.TimeUnit unit)Schedules the given runnable on the underlying executor directly and returns its future wrapped into a Disposable.DisposableschedulePeriodicallyDirect(java.lang.Runnable run, long initialDelay, long period, java.util.concurrent.TimeUnit unit)Schedules the given runnable periodically on the underlying executor directly and returns its future wrapped into a Disposable.voidshutdown()Shuts down the underlying executor in a non-interrupting fashion.-
Methods inherited from class io.reactivex.rxjava3.core.Scheduler.Worker
now, schedulePeriodically
-
-
-
-
Method Detail
-
schedule
@NonNull public @NonNull Disposable schedule(@NonNull @NonNull java.lang.Runnable run)
Description copied from class:Scheduler.WorkerSchedules a Runnable for execution without any time delay.The default implementation delegates to
Scheduler.Worker.schedule(Runnable, long, TimeUnit).- Overrides:
schedulein classScheduler.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 java.lang.Runnable action, long delayTime, @NonNull @NonNull java.util.concurrent.TimeUnit unit)
Description copied from class:Scheduler.WorkerSchedules 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
delayTimeshould be regarded as non-delayed schedule, i.e., as if theScheduler.Worker.schedule(Runnable)was called.- Specified by:
schedulein classScheduler.Worker- Parameters:
action- the Runnable to scheduledelayTime- time to "wait" before executing the action; non-positive values indicate an non-delayed scheduleunit- the time unit ofdelayTime- Returns:
- a Disposable to be able to unsubscribe the action (cancel it if not executed)
-
scheduleDirect
public Disposable scheduleDirect(java.lang.Runnable run, long delayTime, java.util.concurrent.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 fashiondelayTime- the delay amountunit- the delay time unit- Returns:
- the ScheduledRunnable instance
-
schedulePeriodicallyDirect
public Disposable schedulePeriodicallyDirect(java.lang.Runnable run, long initialDelay, long period, java.util.concurrent.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 fashioninitialDelay- the initial delay amountperiod- the repeat period amountunit- the time unit for both the initialDelay and period- Returns:
- the ScheduledRunnable instance
-
scheduleActual
@NonNull public @NonNull ScheduledRunnable scheduleActual(java.lang.Runnable run, long delayTime, @NonNull @NonNull java.util.concurrent.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 instancedelayTime- the time to delay the executionunit- the time unitparent- 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:DisposableDispose 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:DisposableReturns true if this resource has been disposed.- Returns:
- true if this resource has been disposed
-
-