假设有一台服务器,它的IIS上部署有一个Web应用程序-S,可以通过浏览器或其他方式进行访问。
    假设有A、B、C三台电脑同时访问网站S,IIS接收到3个HTTP请求,然后分别为三个请求各建立一个线程。每个线程都有各自的线程栈,每个用户的数据都放在各自线程栈中,也只有用户线程才能取得对应线程栈中的数据,线程之间不会相互影响。这就是为什么一个网站程序能同时被多个用户访问。
    用户的线程运行时,会生成很多的引用类型的对象,这些对象都存在托管堆上,托管堆不像栈只能被所属的线程访问,它能被所有线程共同访问,那各个线程怎么取得自己创建的对象而不会取到其他线程所创建的对象呢?这是因为对象实例虽然在托管堆上,但实例的引用是在线程栈上的,线程要根据实例的引用才能取得实例数据,而线程栈又只能被对应的线程访问,所以线程只会取到自己创建的对象实例,而不会取到其他用户线程所创建的对象实例,同时也不会被其他用户线程取走对象实例。
    当然,值类型数据就不用说,它们都存在于线程栈上,只有各自的线程才能访问,也就是只有各自的用户可以访问。

IIS是怎么处理同时到来的多个请求的?的更多相关文章

  1. IIS 之 HTTP 错误 500.19(无法访问请求页面,因为该页的相关配置数据无效)

    HTTP 错误 500.19- Internal Server Error 错误解决方法,碰到这个问题的原因有很多,大家可以参考下,看属于哪种情况. 刚在本机部署了一个WebService测试,浏览的 ...

  2. IIS 之 HTTP错误 404.17 - Not Found(请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。)

    问题描述:HTTP 404.17 - Not Found" IIS 7.5 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理 .   出现这种情况的原因通常是因为先安装了Framew ...

  3. 让Windows Server 2008 + IIS 7+ ASP.NET 支持10万个同时请求

    具体设置如下: 1. 调整IIS 7应用程序池队列长度 由原来的默认1000改为65535. IIS Manager > ApplicationPools > Advanced Setti ...

  4. IIS由于无法创建应用程序域,因此未能执行请求。错误: 0x80070005 拒绝访问

    网站静态页面(.html)是可以访问的,但是动态页面(.aspx)就出错了. 服务器上还有其他网站,但是都可以正常浏览,这就说明不是IIS本身有问题了,问题应该出在网站本身. 百度后,都说是权限问题, ...

  5. IIS 错误:由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。

    HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本,请添加处理程序.如果应下载文件,请添加 MIME 映射. 可能是缺少处理程序映射.默认情况 ...

  6. 让Windows Server 2008+IIS 7+ASP.NET支持10万个同时请求

    具体设置如下: 1. 调整IIS 7应用程序池队列长度 由原来的默认1000改为65535. IIS Manager > ApplicationPools >Advanced Settin ...

  7. iis如何处理并发请求

    文章:IIS是怎么处理同时到来的多个请求的? 文章:你真的了解:IIS连接数.IIS并发连接数.IIS最大并发工作线程数.应用程序池的队列长度.应用程序池的... 文章:IIS最大工作进程数设置引发串 ...

  8. 深入理解IIS的多线程工作机制

    首先让我们来看看IIS里面的这2个数字:最大并发连接数,队列长度.先说这2个数字在哪里看. 最大并发连接数:在IIS中选中一个网站,右键网站名称,在右键菜单中找到并点击[管理网站]->[高级设置 ...

  9. iis最大连接数和队列长度

    最近公司项目的服务器出现了性能问题,关于iis负载过大,当客户问到最大连接数相关问题造成很萌的感觉,就查了相关资料: 首先让我们来看看IIS里面的这2个数字:最大并发连接数,队列长度.先说这2个数字在 ...

随机推荐

  1. apply()技巧

    apply技巧:   可以将数组的每一项分别作为参数传入函数.   var value = [3,6,34,90]; alert(Math.max.apply(Math,value)); 这个技巧的关 ...

  2. JS调试debug

    1. debugger; 我以前也说过,你可以在JavaScript代码中加入一句debugger;来手工造成一个断点效果.需要带有条件的断点吗?你只需要用if语句包围它: if (something ...

  3. 在编辑Spring的配置文件时的自动提示

    打 开MyEclipse—>Windows--->referenecs——>General,选择下面的Keys,这就是快捷键的设 置,可将Content Assist的快捷键改为 A ...

  4. hdu-3790 最短路径问题---dijkstra两重权值

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3790 题目大意: 给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到 ...

  5. iOS中的崩溃类型

    http://blog.csdn.net/womendeaiwoming/article/details/44243571 OS中的崩溃类型 在这里了解一下XCode用来表示各种崩溃类型的术语,补充一 ...

  6. python剑指offer系列二叉树中和为某一值的路径

    题目描述 输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径.(注意: 在返回值的list中,数组长度大 ...

  7. CUDA并行存储模型

    CUDA将CPU作为主机(Host),GPU作为设备(Device).一个系统中可以有一个主机和多个设备.CPU负责逻辑性强的事务处理和串行计算,GPU专注于执行高度线程化的并行处理任务.它们拥有相互 ...

  8. python3.7 os模块

    #!/usr/bin/env python __author__ = "lrtao2010" #python3.7 os模块 #os模块是与操作系统交互的一个接口 # os.get ...

  9. UVA - 753 A Plug for UNIX(网络流)

    题意 给定一些插头设备和插座,有一些方法可以把其中一些插头变成另一种插头.求无法匹配插座的插头设备个数. 题解 用\(map\)给每个字符串标号为\(a_i\)和\(b_i\). 读入每种改变插头的方 ...

  10. 数论:HDU1066-Last non-zero Digit in N!

    题目: Last non-zero Digit in N! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K ...