class ThreadPoolScheduler
class ThreadPoolScheduler does Scheduler {}
The ThreadPoolScheduler has a range of number of threads that it maintains,
and it distributes work among those threads. When the upper limit of threads
isn't reached yet, and there is work pending, it spawns new threads to handle
the work.
Methods
new
method new(Int :$initial_threads = 0, Int :$max_threads = 8 * Kernel.cpu-cores)
Creates a new ThreadPoolScheduler object with the given range of threads to
maintain.
The default value for :initial_threads is 0, so no threads will be
started when a ThreadPoolScheduler object is created by default.
The default value for :max_threads is 64, unless there appear to be
more than 8 CPU cores available. In that case the default will be 8 times
the number of CPU cores.
See also the RAKUDO_MAX_THREADS environment variable to set the default maximum number of threads.
As of release 2022.06 of the Rakudo compiler, it is also possible to specify
Inf or * as a value for :max_threads, indicating that the maximum
number of threads allowed by the operating system, will be used.