[英]Java concurrent set with timeout
我需要一些Java集合来保存String值,并具有同步方法来添加元素(如果尚不存在)(类似于addIfAbsent用于ArrayList)。 收集将是繁忙的。 我也想有一些超时机制,之后集合中的条目会过期。 超时时间应该在5秒左右。
有什么解决方案的建议吗? 选择没有超时机制的收集也将很有帮助。
谢谢你的帮助。
您是否要实现某种形式的缓存机制? 如果是这样,则无需重新发明轮子。 您可以使用某些缓存实现,例如EhCache。
请看一下这个线程: 关于带有超时(缓存)的集合的类似问题
将超时解释为一个时间值,之后将删除插入集合中的项,那么Guava Cache实现是否适合您的需求? 它不会直接公开putIfAbsent
方法,但是您可以使用CacheLoader
或提供Callable
来生成值(如果需要)。
String value = cache.get("key", new Callable<String>() { ... });
如果cache
不包含给定key
的值,则将调用callable。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.