如何在谓词上运行多线程集合迭代?

时间:2010-03-26 15:18:13

标签: java multithreading guava

为了抽象,让我们假设我有一个

Map<Double, Collection<Employee>>

其中key是工资阈值。或者对于熟悉Google收藏的人来说,就像那样 多重映射

我想为每个员工的工资进行数据库查找,如果它低于工资阈值,则从集合中删除员工。如何以多线程方式执行此操作,最好使用固定的线程池执行程序?

同样,对于google collection精明的人来说,如果通过Predicate进行数据库查找并过滤集合,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

对现场数据结构的并发过滤在我的感觉上要求太多。您至少需要一种方法来标记当前正在处理的员工。

而是使用输入和输出映射。让线程通过输入映射(我将使用BlockingQueues作为集合)并将所有适合您测试的员工写入输出映射。