高并发编程-06-可见性-volatile

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高并发编程-06-可见性-volatile相关的知识,希望对你有一定的参考价值。

1,volatile的作用

volatile是一个轻量级的线程同步机制。它的特性之一,是保证了变量在线程之间的可见性

当然,还有我们之前说的,解决指令重排的问题

volatile保证了在多个线程之间是可见的,但不能保证原子性操作

当一个线程修改了变量的值之后,其他线程可以感知到

2,volatile vs synchronized

synchronized也是保证了线程的可见性,同时也具备了多线程之间的互斥性

3,如何使用?

private volatile int count;

4,volatile底层实现原理

工作内存(cpu),主内存,当变量被声明为volatile后,JVM会每次都从主内存去读取,而不是读取自己的工作内存

技术分享图片


以上是关于高并发编程-06-可见性-volatile的主要内容,如果未能解决你的问题,请参考以下文章

Java高并发同步Volatile的使用

聊聊高并发(十九)理解并发编程的几种"性" -- 可见性,有序性,原子性

高并发编程-08-Lock

Java——多线程高并发系列之volatile关键字

Java——多线程高并发系列之volatile关键字

多线程与高并发二-CAS与volatile