volatile可以阻止编译器过度优化,volatile可以做到两件事情:
1)、阻止编译器为了提高速度将一个变量缓存到寄存器内而不写回。
2)、阻止编译器调整操作volatile变量的指令顺序。
但是volatile却无法阻止cpu动态调度(改变指令的执行顺序)。
本文解释了volatile关键字如何阻止编译器优化和调整指令顺序,但无法防止CPU动态调度。主要内容包括volatile的两个关键功能及其限制。
volatile可以阻止编译器过度优化,volatile可以做到两件事情:
1)、阻止编译器为了提高速度将一个变量缓存到寄存器内而不写回。
2)、阻止编译器调整操作volatile变量的指令顺序。
但是volatile却无法阻止cpu动态调度(改变指令的执行顺序)。
1866
884
1152

被折叠的 条评论
为什么被折叠?