Package org.drasyl.util
Class DrasylScheduler
- java.lang.Object
-
- org.drasyl.util.DrasylScheduler
-
public class DrasylScheduler extends Object
It is an intentional behavior that this scheduler ensures that the JVM is not automatically terminated once all sequential program flows have been processed. A corePoolSize of 0 would prevent this behavior, but would also have a negative effect on performance. The ThreadPool would not start to create a new thread to process until the workQueue limit is reached. Assuming that the workQueue limit is never reached, the schedule would never start processing the already submitted tasks.
-
-
Field Summary
Fields Modifier and Type Field Description protected static boolean
heavySchedulerCreated
protected static boolean
lightSchedulerCreated
static long
SHUTDOWN_TIMEOUT
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static io.reactivex.rxjava3.core.Scheduler
getInstanceHeavy()
Use thisScheduler
for slow and heavy task that does do longer computations.static io.reactivex.rxjava3.core.Scheduler
getInstanceLight()
Use thisScheduler
for fast and light task that does not do heavy computations.static CompletableFuture<Void>
shutdown()
Shutdown the two schedulers.
-
-
-
Field Detail
-
SHUTDOWN_TIMEOUT
public static final long SHUTDOWN_TIMEOUT
- See Also:
- Constant Field Values
-
lightSchedulerCreated
protected static volatile boolean lightSchedulerCreated
-
heavySchedulerCreated
protected static volatile boolean heavySchedulerCreated
-
-
Method Detail
-
getInstanceLight
public static io.reactivex.rxjava3.core.Scheduler getInstanceLight()
Use thisScheduler
for fast and light task that does not do heavy computations.- Returns:
- a
Scheduler
for fast and light tasks
-
getInstanceHeavy
public static io.reactivex.rxjava3.core.Scheduler getInstanceHeavy()
Use thisScheduler
for slow and heavy task that does do longer computations.- Returns:
- a
Scheduler
for slow and heavy tasks
-
shutdown
public static CompletableFuture<Void> shutdown()
Shutdown the two schedulers.This operation cannot be undone. After performing this operation, no new task can be submitted!
-
-