【发布时间】:2018-10-13 15:05:12
【问题描述】:
以下代码显示了与此不同的对象上的同步:
public class A {
int a,b,c,d;
public void method1(Object x){
synchronized(x){
// is a ,b ,c ,d guarantee visibility ?
}
}
public synchronized void method2() {
a++;
}
}
我知道编辑 a 、 b 、 c 、 d 会出现问题,因为在 method1 和 method2 中有不同的锁定,但问题是 method2 刷新的更改对 method1 是可见的吗?因为他们不使用相同的锁。
【问题讨论】:
标签: java multithreading synchronized volatile