class ThreadPoolScheduler does Scheduler {}

ThreadPoolScheduler 具有它维护的线程数量范围,并且它在这些线程中分配工作。当尚未达到线程上限并且有待处理的工作时,它会生成新线程来处理工作。

方法§

new§

method new(Int :$initial_threads = 0Int :$max_threads = 8 * Kernel.cpu-cores)

使用给定的线程范围创建一个新的 ThreadPoolScheduler 对象以进行维护。

:initial_threads 的默认值为 0,因此在默认情况下创建 ThreadPoolScheduler 对象时不会启动任何线程。

:max_threads 的默认值为 64,除非似乎有超过 8 个可用 CPU 内核。在这种情况下,默认值将是 CPU 内核数量的 8 倍。

另请参阅 RAKUDO_MAX_THREADS 环境变量以设置默认最大线程数。

从 Rakudo 编译器的 2022.06 版本开始,还可以将 Inf* 指定为 :max_threads 的值,表示将使用操作系统允许的最大线程数。

类型图§

ThreadPoolScheduler 的类型关系
raku-type-graph ThreadPoolScheduler ThreadPoolScheduler Any Any ThreadPoolScheduler->Any Scheduler Scheduler ThreadPoolScheduler->Scheduler Mu Mu Any->Mu

展开上面的图表