产品小王他来了,这次居然想让我(三寸不烂之舌的码农)背黑锅!!!张口便怼,你这不当厨师可惜了,这锅甩的可以啊!记住,他不怀好意,你也没必要客气。
概念
java内存模型是一套规范,描述了java中各种变量(线程共享变量)的访问规则,以及在JVM中将变量存储到内存和从内存中读取变量这样的底层细节

java中的共享变量都放在主内存中,比如类的成员变量,静态变量等 每个线程都可以来访问主内存。 局部变量保存在线程的工作内存。
工作内存
每个线程都有自己的工作内存,当线程执行代码的时候都必须在工作内存中处理。 线程不能直接去主内存中操作共享变量,必须先把共享变量复制一份到自己的工作内存中,再进行数据的处理,处理完之后再同步到主内存中。
作用
java内存模型是一套在多线程读写共享数据时,对共享数据的可见性、有序性、和原子性的规则和保障。关键字:synchronized、volatile。
小结
java内存模型是一套规范,描述了java程序中各种变量(共享变量)的访问规则,以及在JVM中将变量存储到内存和从内存中读取变量这样的底层细节,java内存模型是对共享数据的可见性、有序性、原子性的规则和保障。
主内存和工作内存之间的数据交互
java内存模型中定义了八种原子操作

注意
1、如果一个变量执行了lock操作,将会清空工作内存中此bia变量的值 2、对一个变量执行unlock操作之前,必须先把此变量同步到主内存中
小结
主内存和工作内存之间的数据交换过程 lock->read->-load->use->assign->store->write->unlock