volatile使用场景问题

来源:3-5 线程安全性-有序性与总结

爱心然

2018-03-29


该实例 如果不使用volatile关键字,不能达到同样效果么?会有什么问题?

写回答

2回答

海天s

2019-11-24

你可以把图片里的代码补全,写个demo。起两个线程,如果不用volatile修饰inited,线程1修改inited后,线程2并不能读到线程1的修改。

0
0

Jimin

2018-03-29

你好,这个例子,首先是在多线程并发的环境下执行,加了volatile关键字修饰的变量,一个线程修改了他的值,另外一个线程能直接在读取时拿到他的最新值。volatile可理解为每次读取这个变量是从主存里读取最新的值,而不加这个volatile修饰的变量,每次相当于从当前线程的工作内存里取变量,这时不会直接知道其他线程的变化。这里主要依靠的就是volatile的可见性。
祝你学习愉快~

0
0

Java高并发编程,构建并发知识体系,提升面试成功率

构建完整并发与高并发知识体系,倍增高薪面试成功率!

3923 学习 · 832 问题

查看课程