Java并发编程:volatile关键字解析

摘要:

1.java的内存模型,由于主存读取速度较慢,CPU在处理每个线程都有自己的高速缓存。

2.并发编程必须要保证原子性、可见性以及有序性。

3.被volatile关键字修饰的变量

1)保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。

2)禁止进行指令重排序。

4.Java内存模型具备一些先天的“有序性”,即不需要通过任何手段就能够得到保证的有序性,这个通常也称为 happens-before 原则。如果两个操作的执行次序无法从happens-before原则推导出来,那么它们就不能保证它们的有序性,虚拟机可以随意地对它们进行重排序。

5.volatile可以保证可见性,一定的“有序性;synchronized和Lock可以保证线程安全。

6.Atomic是利用CAS来实现原子性操作的(Compare And Swap)

 

 

 

参考链接:

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

 

 

发布了13 篇原创文章 · 获赞 3 · 访问量 772
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览