2010-03-26 48 views
1

對於抽象的緣故,讓我們假設我有一個如何在謂詞上運行多線程集合迭代?

Map<Double, Collection<Employee>> 

,其中關鍵是工資門檻。或者對於熟悉谷歌收藏的人來說,它會是 Multimap

我想爲每個員工的工資進行數據庫查詢,如果它低於工資閾值,則將其從集合中刪除。我怎樣才能以多線程的方式做到這一點,最好使用固定的線程池執行器?

同樣,對於谷歌精明的人來說,如果通過執行數據庫查找並過濾集合的謂詞完成,我將不勝感激。

+1

爲什麼這個社區維基? – 2010-03-26 15:30:11

回答

0

並行數據結構的併發過濾在我的感覺中要求太多。您至少需要一種標記當前正在處理的員工的方法。

而是使用輸入和輸出映射。讓線程在輸入映射中工作(我將使用BlockingQueues作爲集合),並將輸出映射寫入適合您測試的所有員工。