An AsyncScheduler
schedules tasks to happen in the future with the
given ScheduledExecutorService
and the tasks themselves are executed on
the given ExecutionContext
.
Specification for run-loops, imposed by the Scheduler
.
An ExecutorScheduler is for building a
Scheduler out of a ScheduledExecutorService
.
A scheduler meant for testing purposes.
Specification for run-loops, imposed by the
Scheduler
.When executing tasks, a run-loop can always execute tasks asynchronously (by forking logical threads), or it can always execute them synchronously (same thread and call-stack, by using an internal trampoline), or it can do a mixed mode that executes tasks in batches before forking.
The specification is considered a recommendation for how run loops should behave, but ultimately it's up to the client to choose the best execution model. This can be related to recursive loops or to events pushed into consumers.