static变量生命周期小研究
2024-09-19 22:07:03
A页面:定义一个普通类,类包含一个静态变量a,值为:111111111111111111
B页面:修改a的值为:22222222222222
C页面:用来查看a的值
1.在vs2008中,先打开B,再打开C,C显示a的值为:222222222222222
就算用ie打开B,用chrome打开C,C仍然显示为:22222222222222,证明与客户端无关;
2.在IIS中,直接打开C,显示为:11111111111111111
证明静态变量的值与服务器有关
3.在IIS中,先打开B,再打开C,C显示a的值为:222222222222222
重启IIS,再打开C,C显示为:11111111111111111,证明服务器生命到期,静态变量也跟着死掉掉~
4.在IIS中,打开B,在虚拟机中,打开宿主机IIS的C,显示为:222222222222222
再次证明与客户端无关,即在实际使用中,不同客户端用户使用的是同一个变量值。
花了2个小时实验出来的,记录一下,要不然过不了一两个月,就只有上帝记得这次的实验结果了。
=================================================
PS:顺便也测试了一下多线程thread
同时用IE和chrome打开,日志记录为:
2014-10-30 14:27:11: 子线程:2014-10-30 14:27:11
====================================================
2014-10-30 14:27:12: 子线程:2014-10-30 14:27:12
====================================================
证明不同请求,线程间无任何关联,更谈不上互斥。
public partial class test_testThread : System.Web.UI.Page
{
private Object thisLock = new Object();
public string str = string.Empty; protected void Page_Load(object sender, EventArgs e)
{
Thread xThread1 = new Thread(new ThreadStart(this.threadFun));
xThread1.Start();
} private void threadFun()
{
lock (thisLock)
{
string nowTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
WriteLog("子线程:" + nowTime);
Thread.Sleep();
}
} private void WriteLog(string sLog)
{
sLog += "\n====================================================";
string sFileName = "testThread_" + DateTime.Now.ToString("yyyy-MM-dd_") + ".txt";
string sFileFullPath = AppDomain.CurrentDomain.BaseDirectory + "test\\" + sFileName;
System.IO.StreamWriter sw = System.IO.File.AppendText(sFileFullPath);
sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss: ") + sLog);
sw.Close();
}
最新文章
- 华清远见成为ARM大学计划正式合作伙伴
- 团队开发——冲刺2.f
- bash fifo管道使用测试例子
- (转)Ratchet教程:Buttons组件
- PHP 中安装memcache扩展文件下载对应地址。
- Redis学习手册(Set数据类型)
- Gulp 从0开始
- jQuery EasyUI API 中文文档 - 布局(Layout)
- SQL2008将服务器的数据库表数据插入到本地数据库
- js实现二级联动下拉列表菜单
- 修改xcode初始生成代码
- 21 re正则模块 垃圾回收机制
- MyOD(课下作业,选做)
- python日志等级输出删选
- noi.openjudge 1.12.6
- .NET并行计算和并发4-Thread-Relative Static Fields and Data Slots
- Java开发异常
- html多文件上传,可支持预览
- 用crash来分析一下proc的文件访问
- WebGL------osg框架学习二