在队列中查找可以并行处理的项目

时间:2018-07-09 23:55:24

标签: java parallel-processing queue

我有一个当前正在单线程上处理的队列。我必须按顺序处理这些项目,这一点至关重要。但是,在某些情况下,我将能够并行处理这些项目。

所以可以说我有三个Person对象,我必须为每个人建立一个个人资料。所有这些生活事件都是有序的,必须进行顺序分析,否则个人资料将不准确。每个Person的所有生活事件都到达同一队列(使用BlockingQueue,每1000个条目的上限)。

为清楚起见,我们只说Person个对象是Chris,Bobby和Jason。有时候,克里斯会在此队列中占据接下来的500个事件,而杰森和鲍比将被搁置,直到克里斯的所有事件都得到处理。

我考虑过给每个Person自己的个人队列,但是在给定的时间可能有多达300个Person对象,这可能会产生意外的结果。我还考虑过扫描队列中的其他Person来开始分析,但是每次执行此操作可能都会导致太多的迭代。

什么是最好的方法?是否有已经支持这种队列的实现?

1 个答案:

答案 0 :(得分:0)

如果我们谈论的是按需存储队列,那么每人队列是最好的选择。

可能具有优化的潜力,但是使用这些数字,您可能不会遇到问题。