术语“共享变量”是啥意思?它与“全局变量”有何不同?

Posted

技术标签:

【中文标题】术语“共享变量”是啥意思?它与“全局变量”有何不同?【英文标题】:What does the term "shared variable" mean? How is it different from "global variable"?术语“共享变量”是什么意思?它与“全局变量”有何不同? 【发布时间】:2014-05-19 15:04:25 【问题描述】:

MSDN documentation on writing network drivers 使用术语“共享变量”,例如:

当处理器请求彼此独立的共享变量时,就会发生错误共享。但是,由于变量位于同一高速缓存行上,因此它们在处理器之间共享。在这种情况下,缓存行将在处理器之间来回移动,以便每次访问其中的任何变量,从而导致缓存刷新和重新加载的增加。这会提高系统总线利用率并降低整体系统性能。

我不明白这里的“共享变量”是什么意思。我知道全局、局部和静态变量。这是其中一个的另一个术语,还是不同的东西?

【问题讨论】:

您在哪里看到使用了“共享变量”这个术语?你能从那个地方引用几句话吗? msdn.microsoft.com/en-us/library/windows/hardware/…在“避免虚假分享”的标题下。第一行包含这个词 避免错误共享 当处理器请求彼此独立的“共享变量”时,就会发生错误共享。 谢谢。我已经修改了您的问题,以便更清楚地了解您想知道的内容。不幸的是,虽然我知道 MSDN 中的“共享变量”是什么意思,但我对它的理解还不够好,无法向您解释。我可以告诉你,它与全局或局部变量无关;任何类型的变量都可能是共享变量,这取决于代码如何使用它。 【参考方案1】:

共享变量是线程之间共享的变量。这与静态程序范围完全正交。

【讨论】:

【参考方案2】:

在 OOP 中,共享变量是可以为多个对象访问的变量。 全局变量是范围最大的变量,因为它们可以在任何地方使用。

来源:“Smalltalk 编程 - 从头开始​​面向对象”,第 52 页

【讨论】:

以上是关于术语“共享变量”是啥意思?它与“全局变量”有何不同?的主要内容,如果未能解决你的问题,请参考以下文章

Node.js 中的 Streams3 是啥,它与 Streams2 有何不同?

...this.props.pokemon 的目的是啥,它与 this.props.pokemon 有何不同 [重复]

c语言中public:是啥意思啊?

什么是距离敏感数据,它与其他数据有何不同?任何示例都会有所帮助

全局变量与类变量有何不同,它们是不是相同?

“非静态”的不同术语是啥?