我有一个当前正在单线程上处理的队列。我必须按顺序处理这些项目,这一点至关重要。但是,在某些情况下,我将能够并行处理这些项目。
所以可以说我有三个Person
对象,我必须为每个人建立一个个人资料。所有这些生活事件都是有序的,必须进行顺序分析,否则个人资料将不准确。每个Person
的所有生活事件都到达同一队列(使用BlockingQueue
,每1000个条目的上限)。
为清楚起见,我们只说Person
个对象是Chris,Bobby和Jason。有时候,克里斯会在此队列中占据接下来的500个事件,而杰森和鲍比将被搁置,直到克里斯的所有事件都得到处理。
我考虑过给每个Person
自己的个人队列,但是在给定的时间可能有多达300个Person
对象,这可能会产生意外的结果。我还考虑过扫描队列中的其他Person
来开始分析,但是每次执行此操作可能都会导致太多的迭代。
什么是最好的方法?是否有已经支持这种队列的实现?
答案 0 :(得分:0)
如果我们谈论的是按需存储队列,那么每人队列是最好的选择。
可能具有优化的潜力,但是使用这些数字,您可能不会遇到问题。