指定超时后同步方法释放



我有一个简短的问题。我基本上有一个同步方法,可以在调用时执行一些任务。

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

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

如果有办法,有人可以放一个示例代码吗?

提前感谢!

您可以使用锁定而不是同步关键字

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

该方法如下所示

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

相关内容

  • 没有找到相关文章

最新更新