固定大小的并发地图

兔子比斯瓦斯

我需要具有以下要求的地图:

  1. 它应该是高度并发的。put()get()并且remove()方法可同时被多个线程调用。

  2. 它应该是固定大小。如果HashMap到达的大小达到最大值(例如10000),则不应在地图上添加新条目。不能是LRU高速缓存,其中最早的条目在达到最大大小时会被删除。

ConcurrentHashMap可能满足#1。但是,不确定在ConcurrentHashMap不影响并发性的基础上如何实现#2 (添加自定义put()方法仅在大小小于最大大小时才添加到地图中)需要“同步”。这将达到目的。使用并发HashMap)。

请让我知道你的想法。

内森·休斯(Nathan Hughes)

您可以使用计数信号量来限制映射中的项目数量,从而实现委托给ConcurrentHashMap的映射。信号灯类使用原子更新的INT跟踪许可证的,所以它不会招致太多额外的开销。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章