perl6 – 如何控制线程数?

前端之家收集整理的这篇文章主要介绍了perl6 – 如何控制线程数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
#The @url.elems >= 10000
    for @url -> $url {
       start {
          say $url;
          sleep(1);
       }
    }

如何控制线程数?

解决方法

在回答问题之前:您显示代码会丢失由start返回的Promise.你可能想要:

await do for @url -> $url {
   start {
      say $url;
      sleep(1);
   }
}

这将等到所有启动块都完成.

回到你的问题:环境变量RAKUDO_MAX_THREADS可以在运行程序之前设置为将创建的最大线程数(默认值为16).

另一种在运行时也能运行的方法是动态创建一个新的ThreadPoolScheduler对象:

my $*SCHEDULER = ThreadPoolScheduler.new(max_threads => 32);

任何可以看到这个版本的$* SCHEDULER的线程代码现在都将使用这个有32个线程可用的调度程序.

猜你在找的Perl相关文章