ReentrantReadWriteLock.ReadLock
ReentrantReadWriteLock.WriteLock

对于上面的两个类,我这样调用锁吗?
try {
     readLock.tryLock(10, TimeUnit.SECONDS)
     [...]
} finally {
     readLock.unlock();
}

要么
readLock.tryLock(10, TimeUnit.SECONDS)
try {

     [...]
} finally {
     readLock.unlock();
}

哪种方法更安全?对于lock()方法和tryLock()方法,是否同样适用?

最佳答案

它必须放在条件部分,如果无法获得锁,则不能尝试使用数据。

if (readLock.tryLock(10, TimeUnit.SECONDS)) {
    try {

         [...]
    } finally {
         readLock.unlock();
    }
} else {
    // failed to get lock
}

关于java - tryLock方法调用是否进入try块?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17118374/

10-10 04:06