2011-11-18 74 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