我正在尝试使某些对象同步,并且代码如下所示:
conLock.tryLock();
this.end();
Obj1 = Obj2;
Obj3 = Obj4.build();
} finally {
conLock.unlock();
}
有人可以帮忙在解锁之前是否将所有对象都锁定以进行修改。
文档的任何部分也将有所帮助。
所有对象将被锁定以进行修改
Java中的锁(既不能通过synchronized
关键字也不能通过Lock
实现)不会直接保护任何内容。一切都不会“锁定修改”。
它们仅仅是“建议”锁,该协议允许您通过确保代码与这些锁正确地协调执行来编写线程安全代码。但是要确保适当覆盖所有“关键部分”(例如修改某些可变状态的代码路径)(即,取出需要取出的锁),这取决于您。
它们不会阻止您编写(或执行)忽略锁的代码。