Class 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 Detail

      • lightSchedulerCreated

        protected static volatile boolean lightSchedulerCreated
      • heavySchedulerCreated

        protected static volatile boolean heavySchedulerCreated
    • Method Detail

      • getInstanceLight

        public static io.reactivex.rxjava3.core.Scheduler getInstanceLight()
        Use this Scheduler 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 this Scheduler 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!