各位大侠,关于全局变量我想大家都知道下面这句话
如果几个客户端都在访问同一个界面,则
这些界面中的全局变量共享的,也就是说一个客户端此时修改了本界面中的全局变量的
的值,其它用户访问这个界面中全局变量的值也会跟着改变. 会导致不可预料的情况发生,所以一般是慎用全局变量,上面指的是页面上的全局变量。
我想说对于一个函数体内的变量会不会引发这种类似的问题,假如一个页面中的button按钮事件如下()
{
int sum=0;
for(int j=0;j<10000000;j++)
{
......//假设这里需要很多复杂的逻辑判断(这个循环要运行10秒以上),然后最后一句代码 //是对sum进行累加
sum+=j;//累加
}
int k=sum;//讲累加后的值赋给一个新变量
}
我想说的是在函数体内sum相对于for循环是全局变量,如果两个用户同时进入这个页面,其中一个页面点击了button按钮触发了这个函数,假设另一个用户在一秒之后也点击这个按钮。
此时会不会出现在第二个用户点击时候重新赋予的sum的值,而导致改变影响前一个用户已经运行的程序中的sum值呢?
应该 不会 , 我不知道asp是怎么实现了,如果java的话,每一个访问是隔开的。此sum非彼sum.
JAVA的话全局变量也是隔开的吗?
@xiaoqiangzhou: 恩,通过线程锁什么的,达到隔离的目的。