我正在尝试创建一个地图,其中条目超时并在一段时间后被删除。
基本上,<K, V> Map.put(K key, V value, long **time**)
- 条目将立即放入地图中,并在时间(毫秒)后过期。我不需要在将来的任何时候恢复已删除的条目,但我想确保它不再在地图中。
例如:map.put("foo", "bar", 60l * 1000l)
将让这个键值对在地图中存在一分钟(60long 和 1000long)。
尝试:使用 ConcurentMap 并Map.put(K key, V value, long **time**)
通过以下方式实现:
1. 调用super.put(key, value)
2. 创建一个休眠时间(毫秒)的线程
3. 调用remove(key)
以删除条目。
问题:请评论/让我知道这在线程安全、一致性或我尝试中的任何缺陷方面是否是一个好主意。如果您认为有更好的方法来实现这一点,请提供任何建议。
编辑:感谢您的回复,内存不是这里的问题,我真的只关心条目的短暂生命周期。谢谢你。