我正在尝试创建一个地图,其中条目超时并在一段时间后被删除.
基本上,<K, V> Map.put(K key, V value, long **time**)
- 该条目将立即放入地图中,并将在时间(ms)后过期.我不需要在将来的任何时候恢复删除的条目,但我想确保它不再在地图中.
例如:map.put("foo", "bar", 60l * 1000l)
将让这个键值对在地图中存在一分钟(60长和1000长).
尝试:使用ConcurentMap并Map.put(K key, V value, long **time**)
通过以下方式实现:
1.调用super.put(key, value)
2.创建一个休眠时间(ms)的线程
3.调用remove(key)
以删除该条目.
问题:请评论/让我知道在线程安全性,一致性或我尝试的任何缺陷方面这是否是一个好主意.如果您认为有更好的方法可以实现这一目标,请提供任何建议.
编辑:感谢回复,内存不是问题,我真的只关心条目的短寿命.谢谢.
时间是您要解决的问题的重要组成部分吗?或者是一个实施细节?如果您要解决的问题是内存使用问题之一,那么另外两种可能性就会浮现在脑海中:
编辑
在这种情况下,一些现有的实现可能会节省您一些时间。例如:
归档时间: |
|
查看次数: |
1046 次 |
最近记录: |