存储模型即内存模型描述的是程序中各变量之间的关系,以及在实际操作系统中将变量存储到内存以及从内存中取出变量这样的底层细节。
一 java存储模型
java语言采用共享内存模型(而非消息传递模型)来实现多线程之间的信息交换和数据同步。线程之间通过共享程序公共的状态,通过读-写内存中公共状态的方式来进行隐式的通信。多个线程之间是不能直接传递数据交互的,它们之间的交互只能通过共享变量来实现。同步指的是程序在控制多个线程之间执行程序的相对顺序的机制,在共享内存模型中,同步是显式的,程序员必须显式指定某个方法/代码块需要在多线程之间互斥执行。
1 运行时的数据区域(内存结构)
Java虚拟机在执行Java程序的过程中,会把它管理的内存划分为几个不同的数据区域如下图,这些区域都有各自的用途、创建时间、销毁时间。Java运行时数据区分为下面几个内存区域:
1.1 PC寄存器/程序计数器
严格来说是一个用于保存当前正在执行的程序的内存地址的数据结构ÿ