Frage

Ich habe eine allgemeine Frage zu System.Threading.Threadpool wenn sie in einer Webapplikation auf IIS ausgeführt werden. Angenommen, wir haben zwei Anfragen auf einmal ausführen, und wir ein paar Fäden durch das ThreadPool.QueueUserWorkItem Verfahren anwerfen. Werden die beiden Anträge teilen sich die Threadpool, oder werden die Anrufe an den Threadpool von den beiden Anfragen arbeiten in zwei getrennten Pools?

Dies ist in IIS 6 und 7

Vielen Dank für jede Einsicht.

War es hilfreich?

Lösung

Hier ist ein Zitat aus der MSDN-Dokumentation über die Klasse Thread :

  

Es gibt einen Thread-Pool pro Prozess.   Der Thread-Pool hat eine Standardgröße von   250 Arbeitsthreads pro angebotenem   Prozessor und 1000 I / O-Vollendung   Threads.

In IIS6 und IIS7 jede gegebene ASP.NET-Anwendung innerhalb eines einzelnen Prozesses gehostet ( w3wp.exe ) in der Application Pool-Infrastruktur.
ein Anwendungspool können mehrere Web-Anwendungen hosten durch sie in verschiedenen AppDomains zu halten, aber es läuft innerhalb eines physikalischen Prozesses auf dem Server.
Diese beiden Tatsachen in der Praxis bedeuten, dass alle Fäden von einer laufenden Bahn Anwendungsinstanz im gleichen .NET Threadpool ausgeführt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top