加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl6 – 如何控制线程数?

发布时间:2020-12-16 06:09:55 所属栏目:大数据 来源:网络整理
导读:#The @url.elems = 10000 for @url - $url { start { say $url; sleep(1); } } 如何控制线程数? 解决方法 在回答问题之前:您显示的代码会丢失由start返回的Promise.你可能想要: await do for @url - $url { start { say $url; sleep(1); }} 这将等到所有
#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个线程可用的调度程序.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读