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();
}

static变量生命周期小研究的更多相关文章

  1. java 静态变量生命周期(类生命周期)

    Static: 加载:java虚拟机在加载类的过程中为静态变量分配内存. 类变量:static变量在内存中只有一个,存放在方法区,属于类变量,被所有实例所共享 销毁:类被卸载时,静态变量被销毁,并释放 ...

  2. java 静态变量生命周期(类生命周期)(转)

    Static: 加载:java虚拟机在加载类的过程中为静态变量分配内存. 类变量:static变量在内存中只有一个,存放在方法区,属于类变量,被所有实例所共享 销毁:类被卸载时,静态变量被销毁,并释放 ...

  3. 探讨C++ 变量生命周期、栈分配方式、类内存布局、Debug和Release程序的区别

    探讨C++ 变量生命周期.栈分配方式.类内存布局.Debug和Release程序的区别(一) 今天看博客园的文章,发现博问栏目中有一个网友的问题挺有趣的,就点进去看了下,标题是“C++生存期问题”,给 ...

  4. Spark Streaming源码解读之生成全生命周期彻底研究与思考

    本期内容 : DStream与RDD关系彻底研究 Streaming中RDD的生成彻底研究 问题的提出 : 1. RDD是怎么生成的,依靠什么生成 2.执行时是否与Spark Core上的RDD执行有 ...

  5. 微信小程序生命周期——小程序的生命周期及页面的生命周期。

    最近在做微信小程序开发,也发现一些坑,分享一下自己踩过的坑. 生命周期是指一个小程序从创建到销毁的一系列过程. 在小程序中 ,通过App()来注册一个小程序 ,通过Page()来注册一个页面. 首先来 ...

  6. Spark Streaming源码解读之流数据不断接收和全生命周期彻底研究和思考

    本节的主要内容: 一.数据接受架构和设计模式 二.接受数据的源码解读 Spark Streaming不断持续的接收数据,具有Receiver的Spark 应用程序的考虑. Receiver和Drive ...

  7. [shell] shell 变量生命周期, source, export

    1. shell 的派生 用户登录到Linux系统后,系统将启动一个用户shell.在这个shell中,可以使用shell命令, 或声明变量,也可以创建并运行shell脚本程序.运行shell脚本程序 ...

  8. 【linux】环境变量生命周期的操作方式

    目录 前言 1. 修改环境变量 1.1 手动指定 1.2 临时生效 1.3 永久生效 链接 前言 参考: 李柱明博客 本文主要记录 linux 环境变量配置的生命周期. 如,修改环境变量 PATH 是 ...

  9. vue生命周期小笔记

    一张图谨记vue每个生命周期的获取状态 beforecreate :可以在这加个loading事件 created :在这结束loading,还做一些初始化,实现函数自执行 mounted : 在这发 ...

随机推荐

  1. Java 注解概要

    转载自:https://www.cnblogs.com/peida/archive/2013/04/24/3036689.html(Java注解就跟C#的特性是一样的) 要深入学习注解,我们就必须能定 ...

  2. hB

    function Coef = LowPassHb(Fs,Fpass,Apass,n) % -- Fs sample frequency % -- Fpass % -- Apass(dB) % -- ...

  3. EditPlus常用快捷键[私人]

    EditPlus快捷键大全网上一搜一大把, 本文档只记录自己常用的快捷键, 随时更新: 必用: ctrl + c 复制 ctrl + x 剪切 ctrl + v 粘贴 ctrl + z 回滚 ctrl ...

  4. 对比手机SLAM和机器人SLAM

    陀螺仪?? IMU?? 加速度器与?? 人与机器 惯性定位与?? 步骤上对比Project Tango与SLAM

  5. Codeforces735A Ostap and Grasshopper 2016-12-13 11:53 78人阅读 评论(0) 收藏

    A. Ostap and Grasshopper time limit per test 2 seconds memory limit per test 256 megabytes input sta ...

  6. POJ1556 最短路 + 线段相交问题

    POJ1556 题目大意:比较明显的题目,在一个房间中有几堵墙,直着走,问你从(0,5)到(10,5)的最短路是多少 求最短路问题,唯一变化的就是边的获取,需要我们获取边,这就需要判断我们想要走的这条 ...

  7. mySQl数据库中不能插入中文的处理办法

    1. 修改MySQL安装目录下(C:\Program Files\MySQL\MySQL Server 5.5)的my.ini文件 设置: default-character-set=utf8 cha ...

  8. Facebook支撑万亿Post搜索背后的技术窥探

    转自http://www.csdn.net/article/2013-10-29/2817333-under-the-hood-building-posts-search 近日,Facebook为po ...

  9. linux系统编程之文件与IO(四):目录访问相关系统调用

    1. 目录操作相关的系统调用     1.1 mkdir和rmdir系统调用     1.1.1 实例     1.2 chdir, getcwd系统调用     1.2.1 实例     1.3 o ...

  10. CC2530学习路线-基础实验-GPIO 控制LED灯亮灭(1)

    目录 1.前期预备知识 1.1 新大陆ZigBee模块LED灯电路 1.2 CC2530相关寄存器 1.3 寄存器操作技巧 1.4 CPU空转延时 1.4 操作流程图 2.程序代码 The End 1 ...