static变量生命周期小研究
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变量生命周期小研究的更多相关文章
- java 静态变量生命周期(类生命周期)
Static: 加载:java虚拟机在加载类的过程中为静态变量分配内存. 类变量:static变量在内存中只有一个,存放在方法区,属于类变量,被所有实例所共享 销毁:类被卸载时,静态变量被销毁,并释放 ...
- java 静态变量生命周期(类生命周期)(转)
Static: 加载:java虚拟机在加载类的过程中为静态变量分配内存. 类变量:static变量在内存中只有一个,存放在方法区,属于类变量,被所有实例所共享 销毁:类被卸载时,静态变量被销毁,并释放 ...
- 探讨C++ 变量生命周期、栈分配方式、类内存布局、Debug和Release程序的区别
探讨C++ 变量生命周期.栈分配方式.类内存布局.Debug和Release程序的区别(一) 今天看博客园的文章,发现博问栏目中有一个网友的问题挺有趣的,就点进去看了下,标题是“C++生存期问题”,给 ...
- Spark Streaming源码解读之生成全生命周期彻底研究与思考
本期内容 : DStream与RDD关系彻底研究 Streaming中RDD的生成彻底研究 问题的提出 : 1. RDD是怎么生成的,依靠什么生成 2.执行时是否与Spark Core上的RDD执行有 ...
- 微信小程序生命周期——小程序的生命周期及页面的生命周期。
最近在做微信小程序开发,也发现一些坑,分享一下自己踩过的坑. 生命周期是指一个小程序从创建到销毁的一系列过程. 在小程序中 ,通过App()来注册一个小程序 ,通过Page()来注册一个页面. 首先来 ...
- Spark Streaming源码解读之流数据不断接收和全生命周期彻底研究和思考
本节的主要内容: 一.数据接受架构和设计模式 二.接受数据的源码解读 Spark Streaming不断持续的接收数据,具有Receiver的Spark 应用程序的考虑. Receiver和Drive ...
- [shell] shell 变量生命周期, source, export
1. shell 的派生 用户登录到Linux系统后,系统将启动一个用户shell.在这个shell中,可以使用shell命令, 或声明变量,也可以创建并运行shell脚本程序.运行shell脚本程序 ...
- 【linux】环境变量生命周期的操作方式
目录 前言 1. 修改环境变量 1.1 手动指定 1.2 临时生效 1.3 永久生效 链接 前言 参考: 李柱明博客 本文主要记录 linux 环境变量配置的生命周期. 如,修改环境变量 PATH 是 ...
- vue生命周期小笔记
一张图谨记vue每个生命周期的获取状态 beforecreate :可以在这加个loading事件 created :在这结束loading,还做一些初始化,实现函数自执行 mounted : 在这发 ...
随机推荐
- C++和Python混合编程
为何人工智能(AI)首选Python?读完这篇文章你就知道了:https://blog.csdn.net/qq_41769259/article/details/79419322 C++调用Pytho ...
- java基础-day1
第01天 java基础知识 今日内容介绍 u Java概述.helloworld案例 u 工具安装 .配置环境变量.注释.关键字 u 常量.变量.数据类型.标识符 第1章 Java概述 1.1 ...
- java web eclipse中项目的加载过程
java web eclipse中项目的加载过程: Tomcat默认从WEB-INF/目录下加载资源,Eclipse在发布程序的时候,并没有把User Libraries的相关资源拷贝到WEB-INF ...
- Oracle SQL性能优化技巧大总结
http://wenku.baidu.com/link?url=liS0_3fAyX2uXF5MAEQxMOj3YIY4UCcQM4gPfPzHfFcHBXuJTE8rANrwu6GXwdzbmvdV ...
- C# RS232串口使用
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- LinkedBlockingQueue源码解析(3)
此文已由作者赵计刚授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 4.3.public E take() throws InterruptedException 原理: 将队 ...
- docker rpm 下载地址
http://yum.dockerproject.org/repo/main/centos/7/Packages/
- Linux core 文件 gdb
http://blog.csdn.net/mr_chenping/article/details/13767609 在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时 ...
- Bootstrap框架(一)
day57 参考:https://www.cnblogs.com/liwenzhou/p/8214637.html 下载:http://www.bootcss.com/ 选择用于生产环境的 Boo ...
- Ultra-QuickSort (POJ 2299)树状数组+离散化
题目链接 Description In this problem, you have to analyze a particular sorting algorithm. The algorithm ...