我正在阅读有关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
添加回答
举报
0/150
提交
取消