gpt4 book ai didi

java - 如何创建一个共享计时器,在第一次初始化后减少

转载 作者:行者123 更新时间:2023-11-30 06:12:40 25 4
gpt4 key购买 nike

我有一个多线程java应用程序,其中每个线程都尝试从池中获取数据库连接。如果连接不可用,则等待 5 分钟直至尝试 3 次,如果尝试 3 次仍未创建连接,则失败。

我现在想要的是创建一些共享的递减计时器,初始化值为 5 分钟。该计时器将在第一次连接失败时启动,线程将进入等待状态 5 分钟。现在对于其他线程,如果发生连接失败并且计时器已启动,则选择计时器的当前值并进入等待状态,直到计时器的当前值。现在,每当线程唤醒时,它都会重新尝试连接,如果再次失败,则会将计时器重新设置为 5 分钟以上。

是否有可用的现有解决方案。

最佳答案

使用System.currentTimeMillis()作为共享计时器,并将上次检查的时间戳存储在共享static Final AtomicLong中,您可以getAndSet code> 或 getAndUpdate 每次检查并将读取的值与当前时间时间进行比较,计算是否在 5 分钟内。

关于java - 如何创建一个共享计时器,在第一次初始化后减少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49894825/

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