使用volatile,不让编译器进行优化,每次读取或修改值得时候,都必须重新从内存或寄存器读取或修改,而非从缓存处读取过期的值,保证每次读取的值绝对是实时的。
一般,出现在如下几个地方:
1.中断服务程序中修改的供其它程序检测的变量
2.多任务环境下各任务间共享的标志
3.存储器映射的硬件寄存器
本文介绍了在多线程环境中使用volatile关键字的重要性和应用场景。通过使用volatile可以确保数据的一致性和可见性,防止编译器对某些操作进行优化。适用于中断服务程序、多任务环境下标志共享等场景。
使用volatile,不让编译器进行优化,每次读取或修改值得时候,都必须重新从内存或寄存器读取或修改,而非从缓存处读取过期的值,保证每次读取的值绝对是实时的。
一般,出现在如下几个地方:
1.中断服务程序中修改的供其它程序检测的变量
2.多任务环境下各任务间共享的标志
3.存储器映射的硬件寄存器
4万+

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