java并发:volatile关键字

时间:2022-05-20 01:23:34

java并发需要保证原子性,可见性,有序性。

http://www.cnblogs.com/expiator/p/9226775.html

一、volatile关键字作用如下:

1、volatile关键字,可以保证可见性。即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。

2、volatile无法保证对变量的任何操作都是原子性的。

3、volatile关键字能禁止指令重排序,所以volatile能在一定程度上保证有序性。

4.  synchronized关键字是防止多个线程同时执行一段代码,那么就会很影响程序执行效率,

而volatile关键字在某些情况下性能要优于synchronized,但是要注意volatile关键字是无法替代synchronized关键字的,因为volatile关键字无法保证操作的原子性。

二、volatile使用情景:

通常来说,使用volatile必须具备以下2个条件:

1.对变量的写操作不依赖于当前值

2.该变量没有包含在具有其他变量的不变式中

参考博客:

https://www.cnblogs.com/dolphin0520/p/3920373.html