Пул потоков в контексте IIS - PullRequest
       61

Пул потоков в контексте IIS

9 голосов
/ 21 сентября 2009

У меня общий вопрос о System.Threading.Threadpool при запуске в веб-приложении на IIS. Скажем, у нас есть 2 запроса, выполняемые одновременно, и мы запускаем пару потоков через метод ThreadPool.QueueUserWorkItem. Будут ли два запроса совместно использовать ThreadPool, или вызовы ThreadPool из двух запросов будут работать в двух отдельных пулах?

Это в IIS6 и 7.

Спасибо за понимание.

1 Ответ

14 голосов
/ 21 сентября 2009

Вот цитата из документации MSDN о ThreadPool классе :

Существует один пул потоков на процесс. Размер пула потоков по умолчанию 250 рабочих потоков на каждый доступный процессор и 1000 I / O завершения нити.

В IIS6 и IIS7 любое данное приложение ASP.NET размещается внутри одного процесса ( w3wp.exe ) через инфраструктуру пула приложений.
Пул приложений может размещать несколько веб-приложений, сохраняя их в разных доменах приложений, но он выполняется внутри одного физического процесса на сервере.

Эти два факта на практике означают, что все потоки из запущенного экземпляра веб-приложения выполняются в одном и том же пуле потоков .NET.

...