gpt4 book ai didi

java - DelayQueue 有相反的东西吗?

转载 作者:行者123 更新时间:2023-11-30 08:54:29 26 4
gpt4 key购买 nike

我需要一个队列来自动删除早于给定毫秒数的元素 - 基本上,我希望队列中的项目在一段时间后过期。

我看到有一个延迟队列似乎在做相反的事情:“一个元素只能在其延迟到期时被采用。” (我从未使用过它)。

也许有一个队列实现可以满足我的需要?如果有界就更好了。

最佳答案

问题在于在什么时候 将删除已过期的元素。如果您担心队列的大小不会超过一定的限制,您将不得不有一个单独的“清洁”线程,在它们过期时从队列中删除它们。您可以使用 DelayQueue 实现它(offer 将添加到内部 LinkedHashSetDelayQueue poll 对集合进行操作,另外一个更干净的线程轮询 DelayQueue,并在它们“成熟”时从集合中移除东西。

如果你不太关心项目一旦过期就从队列中删除,你可以重写标准队列的 poll 方法,检查头部的过期时间,并且,如果它已过期,则清除队列的其余部分并返回 null。

关于java - DelayQueue 有相反的东西吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29391762/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com