我正在尝试使某些对象同步,代码如下所示:
conLock.tryLock();
this.end();
Obj1 = Obj2;
Obj3 = Obj4.build();
} finally {
conLock.unlock();
}
有人可以帮助一下,是否所有对象都将被锁定以进行修改,直到锁定解锁为止。
文档的任何部分也会有所帮助。
最佳答案
all the Objects will be locked for modification
Java 中的锁(无论是通过 synchronized
关键字还是通过 Lock
实现)都不会直接保护任何内容。没有任何东西会被“锁定修改”。
它们只是“咨询”锁,这是一种协议(protocol),允许您通过确保代码与这些锁正确协调执行来编写线程安全代码。但是,您仍然需要确保所有“关键部分”(例如修改某些可变状态的代码路径)都得到适当覆盖(即取出您需要取出的锁)。
它们不会阻止您编写(或执行)忽略锁的代码。
关于java - 可重入锁对象锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59136623/