为什么要有volatile关键字
在嵌入式编程和多线程编程中,我们常会见到volatile关键字声明的变量。
下面说一下volatile关键字的作用:
1.保持变量内存可见
简而言之就是用volatile声明的变量会告诉编译器和处理器,这个变量需要每次使用时从内存里重新读取,不要使用缓存里或者寄存器里的值。
在多线程编程中常见单个变量被多个线程同时访问的问题,为确保读取的变量值是最新的,需要声明为volatile。
2、防止指令重拍
不同的编译器对系统的指令优化方式不同,大部分的编译器会做一些优化操作,以便让CPU按照它认为的最优方式和顺序去执行一些程序指令,这可能会影响到我们这条指令执行的顺序。
通常这种优化在单进程下没有影响。但在多线程的应用中可能会导致问题。
上一篇:Java关键字:volatile
下一篇:C语言关键字之volatile