#The @url.elems >= 10000
for @url -> $url {
start {
say $url;
sleep(1);
}
}
Run Code Online (Sandbox Code Playgroud)
如何控制线程数?
Eli*_*sen 11
在回答问题之前:您显示的代码丢失了Promise返回的start.你可能想要:
await do for @url -> $url {
start {
say $url;
sleep(1);
}
}
Run Code Online (Sandbox Code Playgroud)
这将等到所有启动块都完成.
回到你的问题:RAKUDO_MAX_THREADS可以在运行程序之前设置环境变量到将创建的最大线程数(默认值为16).
另一种在运行时也能运行的方法是动态创建一个新的ThreadPoolScheduler对象:
my $*SCHEDULER = ThreadPoolScheduler.new(max_threads => 32);
Run Code Online (Sandbox Code Playgroud)
任何可以看到此版本的线程代码现在都$*SCHEDULER将使用此调度程序,该调度程序有32个可用线程.
| 归档时间: |
|
| 查看次数: |
187 次 |
| 最近记录: |