Multithreading 这个术语是什么;“共享变量”;意思是它与”有什么不同;全局变量";?

Multithreading 这个术语是什么;“共享变量”;意思是它与”有什么不同;全局变量";?,multithreading,variables,memory,concurrency,Multithreading,Variables,Memory,Concurrency,MSDN使用术语“共享变量”,例如: 当处理器请求彼此独立的共享变量时,会发生错误共享。但是,由于变量位于同一缓存线上,因此它们在处理器之间共享。在这种情况下,每次访问缓存线中的任何变量时,缓存线都会在处理器之间来回移动,从而导致缓存刷新和重新加载的增加。这会增加系统总线利用率并降低总体系统性能 我不明白这里的“共享变量”是什么意思。我知道全局变量、局部变量和静态变量。这是其中一个的另一个术语,还是有什么不同?共享变量是线程之间共享的变量。这与静态程序范围完全正交。在OOP中,共享变量是可以为多

MSDN使用术语“共享变量”,例如:

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


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

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

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


资料来源:“编程Smalltalk-从一开始就面向对象”,第52页

您在哪里看到“共享变量”这个术语?你能从那个地方引用几句上下文吗?在“避免虚假共享”标题下。第一行包含此术语避免虚假共享当处理器请求相互独立的“共享变量”时,会发生虚假共享。谢谢。我修改了你的问题,使你想知道的更清楚。不幸的是,虽然我知道MSDN所说的“共享变量”是什么意思,但我对它的理解还不够透彻,无法向您解释。我可以告诉你,它与全局或局部变量无关;任何类型的变量都可能是共享变量,这取决于代码如何使用它。