繁体   English   中英

Java并发设置超时

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM