转载自:https://blog.csdn.net/emmmsuperdan/article/details/81564412

目录

1、介绍线程之间读取数据的流程

2、原子性

3、可见性:

4、有序性:

5、开始介绍volatile关键字的作用:

6、 volatile(应用场景)和synchronized关键字的区别:(volatile修饰变量,synchronize修饰方法或者一个代码块)

7、上面三点的缩写

8、 原理


首先了解一下并发编程的一些内容:

1、介绍线程之间读取数据的流程

volatile关键字及其原理+并发编程的三大特性:原子性/可见性/有序性

2、原子性

volatile关键字及其原理+并发编程的三大特性:原子性/可见性/有序性

3、可见性:

volatile关键字及其原理+并发编程的三大特性:原子性/可见性/有序性

 volatile关键字及其原理+并发编程的三大特性:原子性/可见性/有序性

4、有序性:

volatile关键字及其原理+并发编程的三大特性:原子性/可见性/有序性

volatile关键字及其原理+并发编程的三大特性:原子性/可见性/有序性

5、开始介绍volatile关键字的作用:

volatile关键字及其原理+并发编程的三大特性:原子性/可见性/有序性

但是:

volatile关键字及其原理+并发编程的三大特性:原子性/可见性/有序性

 volatile关键字及其原理+并发编程的三大特性:原子性/可见性/有序性

6、 volatile(应用场景)和synchronized关键字的区别:(volatile修饰变量,synchronize修饰方法或者一个代码块)

 volatile关键字及其原理+并发编程的三大特性:原子性/可见性/有序性

 volatile关键字及其原理+并发编程的三大特性:原子性/可见性/有序性

volatile关键字及其原理+并发编程的三大特性:原子性/可见性/有序性

7、上面三点的缩写

volatile关键字及其原理+并发编程的三大特性:原子性/可见性/有序性

用双重判空(DCL):第一重判空:因为 synchronize是消耗性能较严重的操作,所以先判空看看到底要不要同步;

第二重就很显而易见了

8、 原理

volatile关键字及其原理+并发编程的三大特性:原子性/可见性/有序性

 2、有序性

volatile关键字及其原理+并发编程的三大特性:原子性/可见性/有序性

 

 从JVM底层来讲,volatile和9条happen-before原则都有一个叫“内存屏障”的东西,来保证线程实行的顺序。

 

 

相关文章:

  • 2019-09-12
  • 2022-12-23
  • 2021-10-06
  • 2021-09-23
  • 2021-03-28
  • 2022-12-23
猜你喜欢
  • 2021-09-07
  • 2021-11-17
  • 2021-10-21
  • 2020-05-18
  • 2021-08-23
  • 2021-10-18
相关资源
相似解决方案