我不确定我是否正确解释了Javadoc。在调用ReentrantLock方法并成功获得锁定之后使用lock时,您是否可以访问没有任何同步块的任何对象,并且神奇地强制了发生之前的关系?

我没有看到ReentrantLock与正在处理的对象之间有任何联系,这就是为什么很难相信我可以安全地对其进行处理的原因。但这是事实,还是我读错了javadoc?

最佳答案

如果线程A修改了由锁保护的代码块CB1内的某个对象,然后释放该锁,并且线程B进入由同一锁保护的代码块,则线程B将在代码中看到线程A所做的修改CB1块。

如果两个线程读取和写入相同的共享状态,则对该状态的每次读取和写入都应由相同的锁保护。

10-08 01:18