java多线程之内存的可见性介绍(备用1)

(仅供参考)

a.共享变量的可见能够一定程度保证线程安全,共享变量不可见导致数据不够准确,出现各种各样的问题,导致线程不安全。

b.不同线程之间无法直接访问其他线程工作内存中的变量。

1.可见性

2.上述提到了工作内存,工作内存是Java内存个模型抽象出来的概念,下面看下JMM定义:

3.JMM内存模型如下:

4.共享变量实现可见性的原理:

5.在实现可见性过程中遵循两条规定:

6.实现过程分析:

a.

b.

c.

d.

(附:上述过程实现了共享变量x再线程1和线程2中的可见性。实现可见性实际上是两部,更新到主内存,然后再到工作内存2中,为了更容易理解,分开描述)

原文地址:https://www.cnblogs.com/newbieYi/p/7229494.html