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

相关文章:

  • 2022-12-23
  • 2021-10-07
  • 2021-04-24
  • 2021-11-22
  • 2021-09-18
  • 2021-08-11
  • 2021-07-01
  • 2021-07-18
猜你喜欢
  • 2022-01-12
  • 2022-01-11
  • 2021-06-26
  • 2021-10-11
  • 2021-11-05
  • 2021-10-19
  • 2022-01-20
相关资源
相似解决方案