多线程内存模型

所有线程都共享一片内存,用于存储共享变量;
此外,每条线程都有各自的存储空间,存储各自的局部变量、方法参数、异常对象。

图解

java 多线程内存模型
当开启线程时,系统会将共享内存中的所有共享变量拷贝一份到线程专属的存储空间中。接下来该线程在结束前的所有操作都是基于自己的存储空间进行的。因此,若一条线程改变了一个共享变量,仅仅改变的是这条线程专属存储空间中的变量值。

内存的可见性

定义: 一条线程对共享变量的修改,对其他线程立即可见。

何时会出现不可见

Thread1 将共享变量改成了 999,在Thread2读到的依旧是 0 ,那么这个就叫做内存的不可见性。

分类:

技术点:

相关文章: