我需要一些帮助来理解 Java 内存模型。以下是掌握基本概念的通用示例:
图片我有一个名为的对象实例Shared和两个线程A和B. 此外,还有某种Queue带有同步put和take.
线程在方法之前和方法中A修改Shared-instance 。put
问题1:通过同步方法获取-object实例时,所有的变化A都是可见的吗?BSharedtake
Shared问题2:一旦A离开同步方法,内存缓存就会被刷新(所有更改都是可见的) put。如果在- 方法wait()中被调用,会发生什么?即使尚未退出- 方法,也会看到所做的更改?调用时缓存是否也被刷新?putABSharedAsynchronizedwait()