我不确定我是否正确解释了Javadoc。在调用ReentrantLock
方法并成功获得锁定之后使用lock
时,您是否可以访问没有任何同步块的任何对象,并且神奇地强制了发生之前的关系?
我没有看到ReentrantLock
与正在处理的对象之间有任何联系,这就是为什么很难相信我可以安全地对其进行处理的原因。但这是事实,还是我读错了javadoc?
最佳答案
如果线程A修改了由锁保护的代码块CB1内的某个对象,然后释放该锁,并且线程B进入由同一锁保护的代码块,则线程B将在代码中看到线程A所做的修改CB1块。
如果两个线程读取和写入相同的共享状态,则对该状态的每次读取和写入都应由相同的锁保护。