My Blogs
Posts tagged with "内存模型"
JVM 内存模型(JMM) 三大特性
Published 2021年10月19日 21:59 by james
特性
原子性
原子性:指一个操作是不可中断的,即使是多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰
比如,对于一个静态全局变量int i,两个线程同时对它赋值,线程A 给他赋值 1,线程 B 给它赋值为 -1,。那么不管这两个线程以何种方式,何种步调工作,i的值要么是1,要么是-1,线程A和线程B之间是没有干扰的。这就是原子性的一个特点,不可被中断。
原子性表示一步操作执行过程中不允许其他操作的出现,直到该操作的完成。
在多线程环境下,原子性表现在,当前线程执行字节码的过程中不允许切换到其他线程,去执行其他的字节码。
在JMM抽象模型中定义了8中原子操作。
- a.
lock(锁定): 作用于主内存中的变量,将某个变量标识为某个线程的独占状态。 - b. `unlock(解锁): 作用于主内存中的变量,将某个变量从某个线程的独占状态释放出来,可以被其他线程锁定。
- c.
read(读取): 将主存中的变量从主存中读取到线程的工作内存中,供load操作使用。 - d.
load(载入): 作用于线程工作内存,将read从主存读取的变量,保存到工作内存的变量副本。 - e. …