следующий код показывает синхронизацию на объекте, отличном от этого:
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?потому что они не используют один и тот же замок.