资料内容:
⼀、Java内存模型
Java内存模型,即:JMM。当程序执⾏并⾏操作时,如果对数据的访问和操作不加以控制,那么必
然会对程序的正确性造成破坏。因此,我们需要在深⼊了解并⾏机制的前提下,再定义⼀种规则,
来保证多个线程间可以有效地、正确地协同⼯作。⽽JMM就是为此⽽⽣的。
JMM的关键技术点都是围绕着多线程的原⼦性、可⻅性和有序性来创建的。所以,下⾯我们来⼀⼀
介绍这三种特性。
1.1> 原⼦性(Atomicity)
原⼦性
是指⼀个操作是不可中断的。即使是在多个线程⼀起执⾏的时候,⼀个操作⼀旦开始,就不会被其他
线程所⼲扰。
⽐如⼀个int a,线程A对其赋值1,线程B对其赋值2,⽆论什么情况,a的值要么是1,要么是2;不
会被线程A或线程B⼲扰。但是,如果是在32位操作系统中,操作64位的long类型数据的时候,
就⽆法保证原⼦性了。因为赋值操作需要执⾏2次32位的操作,⽽在多线程的情况下,可能会出
现“意想不到”的最终结果。如下所示: