Пул потоков в контексте IIS
-
12-09-2019 - |
Вопрос
У меня общий вопрос о System.Threading.Threadpool при запуске веб-приложения в IIS.Допустим, у нас одновременно выполняются 2 запроса, и мы запускаем пару потоков с помощью метода ThreadPool.QueueUserWorkItem.Будут ли эти два запроса совместно использовать ThreadPool или вызовы ThreadPool из двух запросов будут выполняться в двух отдельных пулах?
Это в IIS6 и 7.
Спасибо за понимание.
Решение
Вот цитата из документации MSDN о Класс ThreadPool:
Для каждого процесса существует один пул потоков.Пул потоков имеет размер по умолчанию 250 рабочих потоков на доступный процессор и 1000 потоков завершения ввода/вывода.
В IIS6 и IIS7 любое приложение ASP.NET размещается внутри одного процесса (w3wp.exe) через инфраструктуру пула приложений.
Пул приложений может содержать несколько веб-приложений, размещая их в разных доменах приложений, но при этом он выполняется внутри одного физического процесса на сервере.
На практике эти два факта означают, что все потоки работающего экземпляра веб-приложения выполняются внутри одного и того же пула потоков .NET.