首页 新闻 会员 周边

静态方法内部变量是否在不同thread中共享同一内存?

0
悬赏园豆:5 [已解决问题] 解决于 2008-04-13 16:59
<P>下面是段测试代码,大致的功能是,网页调用一个类的静态方法,在静态方法里,对i这个变量进行2次赋值。疑问是,如果多个网页调用此方法,会不会相互干扰呢?</P> <P>试验结果表明并不相互干扰,很是困惑。</P> <P>public partial class Default2 : System.Web.UI.Page<BR>{<BR>&nbsp;&nbsp;&nbsp; protected void Page_Load(object sender, EventArgs e)<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.Write(Class1.Fun1(DateTime.Now.ToLongTimeString()).ToString());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</P> <P>}</P> <P>public class Class1<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static int Fun1(string message)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i = 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LogHelper.Info(message+"Fun1 step1 i="+i.ToString()+" and to sleep 5sec");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Thread.Sleep(5000);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i = 2;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LogHelper.Info(message + "Fun1 step2 i=" + i.ToString() + " and to sleep 5sec");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Thread.Sleep(5000);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LogHelper.Info(message + "Fun1 over i=" + i.ToString() + " ");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return i;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P> <P>&nbsp;&nbsp;&nbsp; }</P>
Simple is best的主页 Simple is best | 初学一级 | 园豆:20
提问于:2008-04-02 18:51
< >
分享
最佳答案
0
应该不会吧!当访问这个静态方法的时候,里面的变量如果不是静态的话,会被分配到堆里面的吧,当访问结束的时候,会把这部分内容自动销毁,也就是指向堆的地址会重新直到分配给静态函数变量的初时位置。所以局部变量是不会被保存的,静态变量会单独在内存中有一份,不会随着访问的结束而结束 可能有错误!!个人理解而已。
荒芜 | 菜鸟二级 |园豆:335 | 2008-04-03 18:02
其他回答(2)
0
静态方法只要不涉及静态成员就没事吧~~
沙加 | 园豆:3680 (老鸟四级) | 2008-04-02 19:12
0
同意沙加
张荣华 | 园豆:2020 (老鸟四级) | 2008-04-05 15:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册