gpt4 book ai didi

java - 指定超时后同步方法释放

转载 作者:行者123 更新时间:2023-12-02 09:13:39 25 4
gpt4 key购买 nike

我有一个简单的问题。我基本上有一个同步方法,当被调用时它会执行一些任务。

我使用多线程,有时,当任务由一个线程执行时,线程挂起,导致同步方法无限期地处于阻塞状态。这不允许下一个进程访问该 block 。

有没有一种方法可以设置计时器,在指定时间(例如 60 秒)后同步方法被释放,以便其他线程仍然可以继续而不被阻塞?

如果有办法,请有人提供示例代码。

提前致谢!

最佳答案

您可以使用锁代替synchronized关键字

为了能够强制解锁另一个线程拥有的锁,您可以使用以下实现 https://stackoverflow.com/a/16492269/5313017

方法如下

    public void synchronizedMethod() {
if(!lock.tryLock(10, TimeUnit.SECONDS)){
lock.forceUnlock();
}
doStuff();
lock.unlock();
}

关于java - 指定超时后同步方法释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59183094/

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