IIS上下文中的Threadpool

El *_*Che 9 iis queue multithreading threadpool

在IIS上的Web应用程序中运行时,我有一个关于System.Threading.Threadpool的一般性问题.假设我们有两个请求同时执行,我们通过ThreadPool.QueueUserWorkItem方法启动几个线程.这两个请求是否共享ThreadPool,或者两个请求中对ThreadPool的调用是否会在两个独立的池中运行?

这是在IIS6和7中.

感谢您的任何见解.

Enr*_*lio 14

以下是有关ThreadPool类的MSDN文档的引用:

每个进程有一个线程池.线程池的默认大小为每个可用处理器250个工作线程,以及1000个I/O完成线程.

在IIS6和IIS7中,任何给定的ASP.NET应用程序都通过应用程序池基础结构托管在单个进程(w3wp.exe)中.
应用程序池可以通过将多个Web应用程序保存在不同的AppDomain中来托管它们,但它可以在服务器上的一个物理进程内运行.

实际上,这两个事实意味着来自正在运行的Web应用程序实例的所有线程都在同一个.NET线程池中执行.

  • 所以这基本上意味着将ThreadPool用于需要将任务激活到多个线程的Web应用程序是一个坏主意. (2认同)