【发布时间】:2011-11-18 06:58:16
【问题描述】:
我回到之前的问题:Frequently Used metadata Hashmap
但是,这一次我将如何调整该解决方案以与 ConcurrentMap 一起使用? LinkedHashMap 不是同步集合,由于性能原因,我不想将它包装在 sycronizedMap 中。有没有替代的[并发友好]解决方案来解决这个问题?
最初的问题是我需要一个哈希映射,在这么多条目之后删除最少使用的项目。
【问题讨论】:
-
如果将其包装在 synchronizedMap 中,您真的会遇到性能问题吗?或者这是
premature optimisation的情况? -
为什么不使用
ConcurrentHashMapfromjava.util.concurrent? -
我不必测试 sychMap 的性能……Gorrtz/Bloche 等人在 Currencency in Practice 中有一个基准。 concurrentmap 的设计比较不同。
-
ConcurrentHashMap 特别有用,因为您有多个线程并且它们所做的只是访问一个 Map。如果您有多个线程,它们大部分时间都在做其他事情。即有两个线程尝试访问同一个映射的时间百分比相对较低,那么您使用哪个线程并不重要。
标签: java multithreading performance concurrency