IIS 上下文中的线程池
-
12-09-2019 - |
题
当在 IIS 上的 Web 应用程序中运行时,我有一个关于 System.Threading.Threadpool 的一般问题。假设我们同时执行 2 个请求,并且我们通过 ThreadPool.QueueUserWorkItem 方法启动了几个线程。这两个请求会共享 ThreadPool,还是这两个请求对 ThreadPool 的调用会在两个单独的池中进行操作?
这是在 IIS6 和 7 中。
感谢您的任何见解。
解决方案
这是 MSDN 文档中关于 线程池类:
每个进程有一个线程池。线程池的每个可用处理器的默认大小为250个工作线程,1000 I/O完成线程。
在 IIS6 和 IIS7 中,任何给定的 ASP.NET 应用程序都托管在单个进程内(w3wp.exe)通过应用程序池基础设施。
应用程序池可以通过将多个 Web 应用程序保存在不同的 AppDomain 中来托管它们,但它在服务器上的一个物理进程内运行。
这两个事实意味着在实践中,正在运行的 Web 应用程序实例中的所有线程都在同一个 .NET 线程池内执行。
不隶属于 StackOverflow