36得票10回答
在C/C++中实现工作窃取队列?

我正在寻找一个适当的C/C++中工作窃取队列的实现。我在Google上搜索过,但没有找到有用的内容。 也许有人熟悉一个好的开源实现?(我不想实现来自原始学术论文的伪代码)。

28得票1回答
Java ForkJoinPool非递归任务,工作窃取是否有效?

我希望通过一种方法将Runnable任务提交到ForkJoinPool中:forkJoinPool.submit(Runnable task) 注意,我使用的是JDK 7。 在底层,它们会被转换为ForkJoinTask对象。 我知道当任务递归地分成较小的任务时,ForkJoinPool非常...

11得票1回答
何时使用 disruptor 模式,何时使用带有 work stealing 的本地存储?

以下内容是否正确? - 如果每个条目需要以多种方式(io操作或注释)进行处理,则disruptor pattern具有更好的并行性能和可扩展性,因为可以使用多个消费者并行处理而不会产生争用。 - 相反,work stealing(即在本地存储条目并从其他线程窃取条目)在每个条目仅需以一种方式...

10得票2回答
工作窃取算法是否总是最适合的用户级线程调度算法?

我正在实现一个线程池,研究不同的调度算法。由于我解决的问题的特性,我可以假设并行运行的任务是独立的,并且不会生成任何新的任务。这些任务的大小可能不同。 我立即选择了最流行的调度算法“工作窃取”,使用无锁双端队列来管理本地作业队列,我对这种方法相对满意。但是我想知道是否有任何常见情况下“工作窃...

8得票3回答
工作/任务窃取线程池执行器

在我的项目中,我正在构建一个Java执行框架,该框架接收来自客户端的工作请求。工作(大小各异)被拆分成一组任务,然后排队等待处理。有单独的队列来处理每种类型的任务,并且每个队列都与ThreadPool相关联。 ThreadPool配置方式是优化引擎整体性能的方式。 这种设计有助于我们有效地平...