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 void
dispose()
Dispose the resource, the operation should be idempotent.boolean
isDisposed()
Returns true if this resource has been disposed.@NonNull Disposable
schedule(@NonNull java.lang.Runnable run)
Schedules a Runnable for execution without any time delay.@NonNull Disposable
schedule(@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 ScheduledRunnable
scheduleActual(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.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.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.void
shutdown()
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.Worker
Schedules a Runnable for execution without any time delay.The default implementation delegates to
Scheduler.Worker.schedule(Runnable, long, TimeUnit)
.- Overrides:
schedule
in 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.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 theScheduler.Worker.schedule(Runnable)
was called.- Specified by:
schedule
in 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: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
-
-