在C语言的多线程编程中一般volatile应该用在啥地方?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在C语言的多线程编程中一般volatile应该用在啥地方?相关的知识,希望对你有一定的参考价值。

比如如果我的变量是全局变量,还需要用volatile吗?或者变量本身是数组或指针,若指针地址值不改变,指针指向的值有可能改变,不使用volatile会出现问题吗?

一般用在多线程程序中,由于某个变量可能被多个线程修改,因此,修饰为volatile,使其每次读取,都是从存储volatile变量的地址中去取,而不是取寄存器中的值。
volatile int a;

你的这种设想,都是最好要用volatile的地方,只要这个变量被反复频繁的修改,最好用volatile
参考技术A volatile, 我是想成不要进行最佳化. 应该跟是不是全局变量无关, 要考虑使用时的可能情况.

以上是关于在C语言的多线程编程中一般volatile应该用在啥地方?的主要内容,如果未能解决你的问题,请参考以下文章

java并发编程之volatile

干货:Java并发编程系列之volatile

C语言(*(volatile unsigned CHAR *)addr)理解

4.c++语言级别的多线程编程

为啥 volatile 在多线程 C 或 C++ 编程中没有用?

volatile关键字