了解并发内存模型(JMM)和 Volatile

上一篇:
了解JVM中的GC

我们都知道,多个线程同时操作一个数据会有并发问题,那为什么会出现并发问题呢,产生并发问题的原因是什么呢?

产生并发问题的原因

一般产生并发问题无外乎都跟以下三种特性相关

  1. 原子性
  2. 可见性
  3. 有序性

原子性:
比较好理解,多个线程在执行同一个任务时,其中一个线程在执行的中途不能切到其他线程再去执行该方法,不然就会出现数据不正确的问题。比如很经典的多线程下的卖票问题。这种问题我们可以通过加锁实现数据同步来解决。

下面我们来看看可见性问题

并发中的可见性问题

我们先来看一段代码:

class JMMDemo {
   
    
    
    private boolean flag = true;

    

猜你喜欢

转载自blog.csdn.net/yuzhiqiang_1993/article/details/119513783