【问题标题】:Whats the benefit to use wrokstealing from ForkJoin rather than just ordinary thread pool's queue?使用 ForkJoin 中的工作窃取而不仅仅是普通的线程池队列有什么好处?
【发布时间】:2021-11-07 10:48:04
【问题描述】:

使用 ForkJoin 的工作窃取而不是普通线程池的队列有什么好处? 来自 ForkJoinPool 的“工作窃取”是否比从线程池队列中获取任务更好?不是偷东西吗?

【问题讨论】:

标签: java forkjoinpool work-stealing


【解决方案1】:

ForkJoinPool 专为递归操作而设计。 例如,这可能是像 MergeSort 这样的分治算法。 在这样的算法中,一个线程通常会等待子进程完成。

这就是“偷工减料”的用武之地。实际上有工作要做的人会从等待的线程中偷走工作。

如果您有固定数量的不会产生新线程的线程,您应该只使用普通的 ExecutorService 线程池。

【讨论】:

    猜你喜欢
    • 2020-08-29
    • 2017-11-14
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    • 2020-06-18
    • 2016-12-23
    • 1970-01-01
    相关资源
    最近更新 更多