2011-11-18 65 views
1

我到達回到以前的問題,我有:Frequently Used metadata Hashmap常用哈希地圖,但併發

不過,這次我將如何適應這種解決方案與ConcurrentMap工作? LinkedHashMap不是一個同步集合,並且由於性能原因,我不想將它包裝在sycronizedMap中。有沒有其他的[並行友好]解決方案來解決這個問題?

原來的問題是,我需要一個哈希映射,在這麼多條目後襬脫最少使用的項目。

+3

如果將其包裝到synchronizedMap中,是否會遇到性能問題?或者這是「過早優化」的情況? – Bringer128

+1

您可能想要查看:http://code.google.com/p/concurrentlinkedhashmap/wiki/Design – Deco

+0

爲什麼不使用'java.util.concurrent'中的'ConcurrentHashMap'? – pushy

回答

1

番石榴MapMakerCacheBuilder類可以生成具有LRU逐出策略的併發映射。

CacheBuilder類是高速緩存用例的首選,因爲Guava開發人員正在從MapMaker中剝離高速緩存支持方法。

+2

[CacheBuilder](http://guava-libraries.googlecode.com/svn/trunk/javadoc/com /google/common/cache/CacheBuilder.html)是我們對MapMaker的替代品,應該是首選。 –

+0

我只會接受這個答案,因爲它會導致CacheBuilder。 – monksy