向工作人员分配工作量的最佳策略

问题描述 投票:0回答:1

我有大量数据,必须处理,并且我想使用多线程方法。假设我有1_000_000个对象必须处理,并且我的线程池大小为4(8,16)。

分配此工作负载的最佳策略是什么?我可以想到两件事:

  1. 每个对象= 1个执行程序服务任务。即使与在1个线程中处理所有内容相比,这似乎也是最糟糕的决定。
  2. 将对象总数除以工人数。例如。如果有4个工人,每个工人将要处理25万个对象。这非常简单,在我看来,还有其他选择。

请分享您的想法和其他方法(可能使用FJP可能会更有效)

java multithreading data-processing
1个回答
0
投票

您考虑过极端情况:1个任务包含1个对象,而1个任务包含250k个对象。最佳批次大小很可能介于两者之间。尝试这些配置并记下花费的时间。也尝试8、64、500、4k和32k对象。然后看看最好的时间。如果最佳时间是500和4k,则还可以尝试1k和2k,依此类推。

© www.soinside.com 2019 - 2024. All rights reserved.