在多线程环境中,变量可以是静态变量还是易失变量

我正在为我的应用程序设置两个线程,并声明一个名为x的变量,该变量将从一个线程获取输入,并在另一个线程中用于执行功能,因为该变量随时可能更改,我认为它必须具有可变性,也必须具有全球性。 在这种情况下,我可以将变量声明为静态volatile x吗?

如果是,有人可以对此有所了解吗?

liebe_r 回答:在多线程环境中,变量可以是静态变量还是易失变量

它们是不同的概念:

  • static提供链接信息。它使得变量或函数仅对当前编译单元(源文件)是已知的。该名称将不在目标文件中。

  • volatile告诉编译器变量的值可能因外部来源或事件而改变。例如,在发生中断时由中断服务程序设置的标志。结果,将禁用某些假定变量值不变的编译器优化。

是的,在多线程环境中,变量可以是静态的也可以是易失的。

本文链接:https://www.f2er.com/3158938.html

大家都在问