为了账号安全,请及时绑定邮箱和手机立即绑定

需要提交多少次调用才能与 newWorkStealingPool 一起使用?

需要提交多少次调用才能与 newWorkStealingPool 一起使用?

梵蒂冈之花 2023-11-01 21:17:53
我正在阅读有关Executors.newWorkStealingPool 的内容,并且想知道如何设置它。我的线程将从LinkedBlockingQueue中拉出,因此将连续运行(除非在“take”调用处被阻止)。假设我不知道运行此代码的主机上将提供多少个内核。我如何知道要添加多少个 Runnable 对象实例?Runnable processRecord = () -> {    try {        consumeRecord(blockingQueue.take());    } catch (InterruptedException e) {        e.printStackTrace();    }public void setup() {    ExecutorService workPool = Executors.newWorkStealingPool();-----> 我传入了多少个线程实例?    workPool.submit(processRecord);}更有可能的是 - 我如何(正确)使用这个线程构造?
查看完整描述

1 回答

?
慕的地10843

TA贡献1785条经验 获得超8个赞

Runnables提交到工作窃取池 ( ForkJoinPool) 会执行一次(就像在任何其他线程池中一样)。

对于示例实现,processRecord您需要为中的每个元素提交一个blockingQueue


查看完整回答
反对 回复 2023-11-01
  • 1 回答
  • 0 关注
  • 75 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信