Java内存模型&happens-before规则

2020-09-10  本文已影响0人  大风过岗

Java 内存模型

java-memory-model-fefe.png

由上图可知,在此内存模型下,线程的工作空间local memory 和主内存是独立的,由于每个线程都是在自己的工作空间中运行,如果出现线程A修改了变量a的值,但没有及时写回到主内存的话。后续的线程b从主内存中读取到的变量a的值就仍旧是一个老值(stale value)。由此带来了线程安全性问题。

happens-before

happens-before是JMM(Java Memory Model)为保证线程安全性,而提供的一种排序规则。JVM遵循此规则以实现原子性和内存可见性,从而保证线程安全性。

happens-before规则

上一篇 下一篇

猜你喜欢

热点阅读