📚 分类
多线程
🕵🏽‍♀️ 问题描述
请谈谈你对volatile的理解
👨‍🏫 问题讲解
❒ 保证线程间的可见性

✔ 用volatile修饰共享变量,能够防止编译器等优化发生,让一个线程对共享变量的修改对另一个线程可见(避免实时编译器JIT优化代码)。

❒ volatile禁止指令重排序

✔ 用 volatile 修饰共享变量会在读、写共享变量时加入不同的屏障,阻止其他读写操作越过屏障,从而达到阻止重排序的效果。
🏳️‍🌈 问题总结
❒ 请谈谈你对volatile的理解

①保证线程间的可见性
✔ 用 volatile修饰共享变量,能够防止编译器等优化发生,让一个线程对共享变量的修改对另一个线程可见

②禁止进行指令重排序
✔ 指令重排:用volatile修饰共享变量会在读、写共享变量时加入不同的屏障,阻止其他读写操作越过屏障,从而达到阻止重排序的效果
📖 问题信息
📈 浏览次数:10 | 📅 更新时间:2025-12-01 22:02:25
📦 创建信息
🏷️ ID:107 | 📅 创建时间:2024-12-20 09:07:52