synchronized (lock) {
int a = sharedVar;
...其他逻辑
int b = sharedVar;
}
这两次对于共享变量shareVar的获取都是从主内存拿的吗,也就是说,即使在执行其他逻辑的过程中,其他线程没有通过同一锁就更新了shareVar的值,也能反映到上述代码第二次获取shareVar的值吗
还是说只有在 int a = sharedVar; 第一次获取才是从主内存拿的,后续在同步代码块中再多次获取都是缓存值了。
我想知道在上述锁的临界区中,对于同一共享变量的多次获取是如何拿到的
int a = sharedVar;
...其他逻辑
int b = sharedVar;
}
这两次对于共享变量shareVar的获取都是从主内存拿的吗,也就是说,即使在执行其他逻辑的过程中,其他线程没有通过同一锁就更新了shareVar的值,也能反映到上述代码第二次获取shareVar的值吗
还是说只有在 int a = sharedVar; 第一次获取才是从主内存拿的,后续在同步代码块中再多次获取都是缓存值了。
我想知道在上述锁的临界区中,对于同一共享变量的多次获取是如何拿到的










