如果同步方法抛出异常,在抛出之前在其中进行的成员写入对其他线程是否可见?例如
class Foo
{
private int x;
public synchronized void foo()
{
x++;
// some other code using x that throws RTE for a specific thread
}
}
如果 Foo 的对象在线程 t1 和 t2 之间共享,并且 t1 抛出异常,在这种情况下,x 的最新值是否会刷新到主内存,以便 t2 在为该对象进入 foo 时对其可见?