java内存模型和volatile关键字

java memory model(简称jmm)并不存在,描述了一组规则或者规范,通过这种规范,定义了程序中变量的访问方式,java工作主要是在线程上工作的,每个线程都有一个工作内存,所有的变量都存放在主内存中,线程对变量的操作都必须是在工作内存中进行,不同线程之间无法访问对方工作内存中的变量,他们之间访问必须通过主内存。线程对内存中变量的操作有八种:

lock:针对主内存中的变量,lock代表锁定线程中的变量

unlock:针对主内存的变量,代表释放线程对变量的锁定,可以接受别的线程对变量的锁定

read:针对主内存中的变量,代表了读取变量到线程的工作内存中

load:针对工作内存中的变量,将从主内存中读取的变量赋值到工作内存中的变量

use:针对工作内存中的变量,执行引擎读取变量的值使用这个操作

assign:针对工作内存中的变量,将执行引擎中的值赋值到工作内存中的变量

store:针对工作内存中的变量,将变量值存储到主内存中

write:针对主内存中的变量,将工作内存中读取的到数据写入到主内存的变量中


 

posted on 2018-03-20 22:42  张小泽的小号  阅读(82)  评论(0编辑  收藏  举报

导航