关于将volatile变量作为触发器的使用场景

来源:13-4 适用场合2

ice_wolf

2019-10-08

老师,关于将volatile变量作为触发器,能使之前操作修改后的值对其他线程可见这一点我想不通这个底层原理是啥,像场景1纯赋值不带任何运算的做法我能从缓存不一致问题上想明白,场景2我就理解不了了

写回答

1回答

悟空

2019-10-08

底层原理是内存栅栏,也叫屏障指令,说白了就是可以保证线程内存和主内存之间的同步。用了volatile之后,编译器和CPU会识别到,于是就有了同步的功效,可以保证在读取volatile修饰的变量的时候,保证能看到之前的所有写操作,于是就能当作触发器使用。

0
1
ice_wolf
感谢老师的及时回复?
2019-10-08
共1条回复

线程八大核心+Java并发原理及企业级并发解决方案

完整的并发知识网络+丰富的工作内容分享+50余道并发高频面试题

2512 学习 · 939 问题

查看课程