还是我们上次的图,我们上次大概讲解了类加载子系统的执行过程,验证,准备,解析,初始化四个过程.还有我们的双亲委派机制. 我们这次来说一下运行时内存模型.上一段小代码. public class Main { public int compute() { int a = 11; int b = 22; int c = a + b / 2; return c; } public static void main(String[] args) { Main main = new Main(); int…
JAVA内存模型 在多线程这一系列中,不去探究内存模型的底层 一.什么是内存模型,为什么需要它 在现代多核处理器中,每个处理器都有自己的缓存,定期的与主内存进行协调: 想要确保每个处理器在任意时刻知道其他处理器正在进行的工作,将需要很大的开销:且通常是没必要的 我们只有在需要跨线程共享数据时,才需要知道信息:而在JAVA中就是通过正确的同步来实现 1.重排序 如下:判断输出的值将十分困难 public class PossibleReordering { static int x = 0, y…