我需要具有以下要求的地图:
它应该是高度并发的。的put()
,get()
并且remove()
方法可同时被多个线程调用。
它应该是固定大小。如果HashMap
到达的大小达到最大值(例如10000),则不应在地图上添加新条目。不能是LRU高速缓存,其中最早的条目在达到最大大小时会被删除。
ConcurrentHashMap
可能满足#1。但是,不确定在ConcurrentHashMap
不影响并发性的基础上如何实现#2 (添加自定义put()
方法(仅在大小小于最大大小时才添加到地图中)需要“同步”。这将达到目的。使用并发HashMap
)。
请让我知道你的想法。
您可以使用计数信号量来限制映射中的项目数量,从而实现委托给ConcurrentHashMap的映射。该信号灯类使用原子更新的INT跟踪许可证的,所以它不会招致太多额外的开销。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句