2010-08-10 12 views

risposta

9

Il ThreadPool viene condiviso tra tutti AppDomain - dal momento che significa le discussioni potrebbero finire per il passaggio tra AppDomain c'è stato lavoro perf in giro che (potenzialmente spesso!):

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

[...] in realtà, noi violiamo questa “regola” già: dal .NET 3.5, il pool di thread CLR ha mantenuto separati code FIFO per ogni AppDomain nel processo , e una coda FIFO indipendente aggiuntivo per il lavoro “nativo” i come quelli accodati da un host (ASP.net è l'utente principale di questa funzione ). Abbiamo round-robin tra queste code di lavoro, consentendo a ciascuno di eseguire il lavoro per qualche tempo prima di passare alla successiva. [...]

proposito, si noti che a rigor di termini il ThreadPool non è condivisa attraverso l'intero processo, poiché il CLR v4 consente il caricamento affiancato con V2 e ciascuno avrà il proprio threadpool.

0

Non sicuro al 100%, ma penso che il pool di thread sia una volta per processo, non una sola volta per AppDomain. Prova questo articolo su thread & appdomain:

4

Il threadpool è condiviso tra tutte le appdomain, poiché ogni thread del threadpool è contesto-agnostico e l'intero profilo di runtime di threadpool dipende in gran parte dall'hardware su cui si sta eseguendo (# di procs, hyperthreading e così via)

C'è un pool di thread per processo. Il pool di thread ha una dimensione predefinita di 25 thread per processore disponibile. Il numero di thread nel pool di thread può essere modificato utilizzando il metodo SetMaxThreads . Ogni thread utilizza la dimensione di stack predefinita e viene eseguita con la priorità predefinita .

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

Se non ricordo male, il CLR gestisce i fili ThreadPool internamente e pulisce il contesto del thread prima di servire un'altra richiesta di lavoro.

+1

Questo è il collegamento alla documentazione più recente per .NET 4. http://msdn.microsoft.com/en-us/library/system.threading.threadpool.aspx. Vi sono 250 thread di lavoro per processore disponibile. – btlog