如果多个“线程”访问共享数据,是否需要volatile限定符?

时间:2019-01-30 09:44:03

标签: c multithreading compiler-construction volatile

C 'Volatile' keyword in ISR and multithreaded program? 中,我有相同的问题,但没有人回答。

此外,Barrgroup.com上的文章How to Use C's volatile Keyword说:

  

C的volatile关键字是限定符,在声明变量时将其应用于该变量。它告诉编译器变量的值可能随时更改-编译器在附近发现的代码不会采取任何措施。

“附近”非常含糊。

我的问题是:由于编译器实际上知道何时调用ISR以及何时调度其他线程,为什么编译器看不到ISR和其他线程更改的变量?

0 个答案:

没有答案