Prendere in considerazione un processo che crea più domini dell'applicazione. Questi domini dell'applicazione condividono lo stesso pool di thread? Se sì, come è coordinato tra più domini di applicazione?Il threadpool viene condiviso tra i domini dell'applicazione?
risposta
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.
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:
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. tra domini XMLHttpRequest
- 2. Come creare un servizio di accesso condiviso su più domini?
- 3. Visual Studio: come gestire il codice condiviso tra i progetti
- 4. Comunicazione iframe tra domini
- 5. Ajax tra domini chiamate
- 6. Il sottodominio è considerato tra domini diversi?
- 7. Passaggio di dati tra thread ThreadPool
- 8. Quali sono i rischi della comunicazione JSONP tra domini diversi?
- 9. AngularJS e tra domini POST
- 10. Condivisione sessione tra due domini
- 11. richieste tra domini con JSON
- 12. come abilitare il POST-ing tra domini in PHP?
- 13. Come tenere traccia degli utenti tra domini?
- 14. FireBug e monitoraggio richieste tra domini JSONP
- 15. Threadpool in contesto IIS
- 16. Eccezioni sui thread ThreadPool
- 17. Richieste AJAX tra domini con IE9
- 18. Accesso tra domini nel sito Web ASP.NET
- 19. scrapy abilitare tutti i domini
- 20. .NET ThreadPool QueueUserWorkItem Sincronizzazione
- 21. boost :: threadpool :: pool vs.boost :: thread_group
- 22. Vantaggio di CORS su messaggistica tra domini
- 23. Phonegap-Javascript inviando richiesta ajax tra domini
- 24. Quando utilizzare Threadpool in Gevent
- 25. Database SQLite Android condiviso tra le attività
- 26. Differenza tra delegate.BeginInvoke e utilizzando fili ThreadPool in C#
- 27. Il buffer viene allocato da un heap condiviso per il processo con dimensioni di 64 KB?
- 28. Come utilizzare classe ThreadPool
- 29. C# - ThreadPool QueueUserWorkItem Utilizzare?
- 30. ThreadPool dei processi CLI
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