Java 安全解锁读写锁?

Java unlock ReadWrite lock safely?

我有一个需要解锁的写锁对象,但我不确定它是否被锁定(它取决于相同的变量)。如果未锁定,调用 unlock 将抛出异常。我目前正在做的是:

if (fWriteLock.tryLock())
            fWriteLock.unlock();

有没有更好的办法?

更清晰的方法是if(fWriteLock.isHeldByCurrentThread()),但如果您不知道自己是否有锁,听起来您可能有设计问题。