了解并发内存模型(JMM)和 Volatile
Posted XeonYu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了了解并发内存模型(JMM)和 Volatile相关的知识,希望对你有一定的参考价值。
上一篇:
了解JVM中的GC
我们都知道,多个线程同时操作一个数据会有并发问题,那为什么会出现并发问题呢,产生并发问题的原因是什么呢?
产生并发问题的原因
一般产生并发问题无外乎都跟以下三种特性相关
- 原子性
- 可见性
- 有序性
原子性:
比较好理解,多个线程在执行同一个任务时,其中一个线程在执行的中途不能切到其他线程再去执行该方法,不然就会出现数据不正确的问题。比如很经典的多线程下的卖票问题。这种问题我们可以通过加锁实现数据同步来解决。
下面我们来看看可见性问题
并发中的可见性问题
我们先来看一段代码:
class JMMDemo
private boolean flag = true;
以上是关于了解并发内存模型(JMM)和 Volatile的主要内容,如果未能解决你的问题,请参考以下文章