下面以一个无意义的扩展方法为例:
public static class MyExtensions
{
public static int MyExtensionMethod(this MyType e)
{
int x = 1;
x = 2;
return x
}
}
假设一个执行线程完成了以下行:
x = 2;
然后处理器进行上下文切换,另一个线程进入相同的方法并完成该行:
int x = 1;
我是否正确地假设第一个线程创建和分配的变量“x”与第二个线程创建和分配的变量“x”位于单独的堆栈上,这意味着该方法是可重入的?
是的,每个线程都有自己单独的局部变量。即使被多个线程同时调用,该函数也始终返回 2。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)