当一个网站同时遇到具有非静态变量的相同静态方法时,即使没有声明为静态,这些变量是静态的吗?我会这么认为,但我不得不问。
另一种选择是同一代码的不同执行具有不同的内部变量,因此该代码不会产生意外的字符串长度,例如:
public static class MyClass
{
public static int getResult(string ext)
{
int length = est.length; // One place in RAM or multiple?
Thread.Sleep(5000); // Does this stop program execution for others?
return length;
}
}
问题摘要:
答案 0 :(得分:5)
您正在显示本地变量。所以不,那些不是静态变量。每次调用该方法时(包括它是否以递归方式调用),您都会获得一组新的变量。不同的线程将不共享这些变量。请注意,这与作为静态类的类无关。您需要区分:
Thread.Sleep
仅使当前线程休眠 - 如果您的应用程序有多个线程,其他线程仍然可以执行。