2010-08-10 18 views

Antwort

9

Der Threadpool wird in allen AppDomains geteilt - denn das bedeutet Fäden zwischen AppDomains Schalt enden könnte es gewesen ist perf Arbeit rund um das (möglicherweise oft!):

http://blogs.msdn.com/b/ericeil/archive/2009/04/23/clr-4-0-threadpool-improvements-part-1.aspx

[...] In der Tat, wir verletzen diese "Regel" bereits: seit .NET 3.5, der CLR Thread-Pool hat separate FIFO-Warteschlangen für jede AppDomain im Prozess, und eine zusätzliche unabhängige FIFO-Warteschlange für "native" Arbeit i B. , wie diejenigen, die von einem Host in die Warteschlange eingereiht wurden (ASP.net ist der Hauptbenutzer dieses Features ). Wir Round-Robin zwischen dieser Arbeit Warteschlangen, so dass jeder zu Arbeit für einige Zeit ausgeführt werden, bevor auf den nächsten zu bewegen. [...]

BTW, beachten Sie, dass der Thread streng genommen nicht geteilt wird über den gesamten Prozess hinweg, da die v4-CLR das Laden von Side-by-Side mit V2 ermöglicht und jeder einen eigenen Threadpool hat.

0

Nicht 100% sicher, aber ich denke Thread-Pool ist einmal pro Prozess, nicht einmal pro AppDomain. Versuchen Sie sich diesen Artikel auf :

4

Der Threadpool wird zwischen allen appdomains geteilt, da jeder threadpool Thread kontextunabhängig ist und das gesamte threadpool-Laufzeitprofil stark von der Hardware abhängig ist, auf der Sie laufen (Anzahl der Procs, Hyperthreading) und so)

Es gibt einen Thread-Pool pro Prozess. Der Thread-Pool hat eine Standardgröße von 25 Threads pro verfügbaren Prozessor. Die Anzahl der Threads im Thread Pool kann mit der SetMaxThreads-Methode geändert werden. Jeder Thread verwendet die Standardstapelgröße und wird unter der Standardpriorität ausgeführt.

Quelle: http://msdn.microsoft.com/en-us/library/system.threading.threadpool.aspx

Wenn ich mich richtig erinnere, die CLR behandelt die Threadpool-Threads intern und reinigt den Thread-Kontext, bevor eine weitere Arbeitsanforderung dient.

+1

Dies ist der Link zur neuesten Dokumentation für .NET 4. http://msdn.microsoft.com/en-us/library/system.threading.threadpool.aspx. Es gibt 250 Worker-Threads pro verfügbarem Prozessor. – btlog

Verwandte Themen