gpt4 book ai didi

java - Java 实现监控线程

转载 作者:行者123 更新时间:2023-12-02 02:44:59 26 4
gpt4 key购买 nike

嗯,我不熟悉java中的线程,所以我正在处理这个问题:我有一个单例对象,其中包含一些对象(比方说 session ),并且每个对象都有一个持续时间,所以这意味着经过一段时间后一个对象被认为已过期的时间,因此需要将其从(池 - 单例中的列表)单例中删除。为此,我决定创建一个线程,每 5 分钟(或 10 分钟或其他)检查一次,并清理单例类中的所有 session 。我怎样才能实现这样的功能,避免任何可能的死锁和/或耗时的 block 。先感谢您。

最佳答案

我不会那样实现它。相反,当向池请求 session 时,我会删除超时 session (不过,每次获取都不需要)。顺便说一句,这就是 Guava's CacheBuilder 所做的。 ,您可以使用它,因为它很简单、经过测试并且提供有用的功能。

如果你真的想这样做,那么你可能应该使用 ConcurrentMap 或 ConcurrentList,并使用 single-thread ScheduledExecutorService ,这将唤醒迭代列表并每隔 X 分钟删除旧 session 。

关于java - Java 实现监控线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8940131/

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