Erläuterung zu Threads im Thread-Pool
Habe ich gelesen hier:
In v2.0, 3.5, und 4.0, ASP.NET initialisiert der CLR-ThreadPool mit 100 threads pro Prozessor(Kern)
Das ist richtig , ich habe es (ich habe 8-Kern-Maschine , also 8*100 = 800):
Aber dann sah ich dieses und dieses:
maxWorkerThreads — Konfiguriert die maximale Anzahl von worker-threads an
verwenden Sie für den Prozess auf einer pro-CPU-basis.Der Wertebereich für dieses Attribut ist
von5 through 100.
Die Standardeinstellung ist20
.
Frage
Sehe ich nicht, wie die zahlen passt hier rein :
Den ersten Absatz heißt es: ich habe max 100 threads pro Kern ( das Bild beweisen es , ich habe 8 Kerne).
Aber der zweite Absatz besagt, dass die Standard-maximum-worker-threads pro core 20. Also, wenn ich 8 Kerne dann muss ich 8*20 = 160 max threads. nicht 800.
Kann mir bitte jemand erhellen?
Update:
Ich habe gerade einen Weg gefunden, den Schlüssel zu bekommen, element Wert über c# - code :
So, jetzt der Reihe sind, passen ,aber dennoch - MSDN sagen, der Standardwert ist 20 , nicht 100
Dann erwähnen Sie doch 100 :
Was ist hier Los?
InformationsquelleAutor der Frage Royi Namir | 2014-06-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe mir bei source code und habe festgestellt, dass default-Wert für
MaxWorkerThreads
ist zu 100Diesem Feld Hinzugefügt wird, um die Eigenschaften der Sammlung im statischen Konstruktor
In der property-definition-tun Sie set default Wert 20
Aber diese offensichtlich keine Auswirkungen. Vielleicht ist es eine Art von legacy-Implementierung. Übrigens verhält es sich dieser Weg nur, wenn
autoConfig
auf false gesetzt ist. Wenn es auf true gesetzt habe ich 32K worker-threads in meiner Anwendung. Wahrscheinlich ist dieses Verhalten hängt von der IIS-version.InformationsquelleAutor der Antwort Andrii Litvinov
Laut MSDN,
Quelle
InformationsquelleAutor der Antwort cjcurrie