Se un'attività viene creata utilizzando l'opzione LongRunning ci sono effetti collaterali in quanto non utilizzano ThreadPoolAttività LongRunning effetti collaterali?
risposta
Sì. L'effetto collaterale è che: se hai un milione di attività, potresti potenzialmente creare un milione di thread.
necessità di tener conto del fatto che ogni filo porterà memoria sovraccarico e contesto ambientale commutazione. Il sovraccarico della memoria non è così piccolo, stiamo parlando di pochi MB qui quindi, anche con migliaia di articoli, potresti incontrare dei problemi.
Attività LongRunning, indica che le code globali e locali verranno ignorate, in modo da impedire che blocchi l'altra thread che lo seguono nella coda locale.
Ciò significa che se si dispone di molte di queste attività a esecuzione prolungata, potrebbe creare più thread del normale.
Si può vedere nelle risposte sulla questione alcuni degli svantaggi:
Aggiornato per essere un po 'più chiaro (e si spera più in linea con ciò che dice MSDN) – Holger
L'opzione LongRunning
è un suggerimento per lo scheduler che significa che può scegliere di eseguire il Task
su un thread non ThreadPool (se è il thread-pool sostenuta DefaultScheduler
molto probabilmente sarà). Un effetto collaterale dell'opzione LongRunning
è che l'inlining dell'attività non è consentito per tale attività. Ciò significa che se l'attività LongRunning
crea altre attività nidificate o secondarie e chiama Wait
in una di queste attività, queste verranno sempre eseguite su un thread diverso anziché essere in linea (ad esempio, eseguire sullo stesso thread eseguendo lo Wait
).
Nel contesto di risposte di altre persone vale la pena notare che la creazione di un gran numero di compiti che richiedono molto tempo per completare senza il suggerimento LongRunning
è ancora probabile che a causare un'escalation del numero di thread a causa della Discussione Algoritmo di iniezione utilizzato da DefaultScheduler
. L'algoritmo non distingue tra thread nel pool che sono bloccati e quelli che hanno eseguito un elemento di lavoro per un lungo periodo e in entrambi i casi può rispondere iniettando più thread nel pool per provare ad aumentare il throughput del lavoro.
Reflector mostra che il suggerimento, a partire da. NET 4.0, è sempre obbedito. – usr
- 1. LD_LIBRARY_PATH effetti collaterali
- 2. Q_UNUSED ha effetti collaterali?
- 3. Best Practice LongRunning Creazione attività
- 4. Effetti collaterali nelle espressioni generiche
- 5. C# ottimizzazioni ed effetti collaterali
- 6. effetti collaterali su altre risorse
- 7. Attività Libreria parallela - Attività LongRunning vs Multiple Continuations
- 8. Enforcing di effetti collaterali in python
- 9. Le importazioni Has Haskell hanno effetti collaterali?
- 10. Effetti collaterali della chiamata Assembly.Load più volte
- 11. Approccio ai setter senza effetti collaterali
- 12. Java 8 Consumer ed effetti collaterali
- 13. C++: funzione di ottimizzazione senza effetti collaterali
- 14. VLA e effetti collaterali nell'operando sizeof
- 15. Quali sono gli effetti collaterali dell'utilizzo di EmptyWorkingSet?
- 16. Gli effetti collaterali sono possibili nella pura programmazione funzionale
- 17. Esiste un modo per testare l'unità contro gli effetti collaterali?
- 18. Quali sono gli effetti collaterali della disattivazione dell'ispezione LINT?
- 19. git branch -m ha effetti collaterali per altri sviluppatori?
- 20. Perché un riduttore Redux deve essere privo di effetti collaterali?
- 21. Ci sono effetti collaterali dell'utilizzo di molte funzioni statiche?
- 22. Rimuovere gli elementi in un ciclo for senza effetti collaterali?
- 23. Perché utilizzare i cattivi effetti collaterali nei costruttori JavaScript?
- 24. Come gestire gli effetti collaterali complessi in Redux?
- 25. È possibile ottimizzare le funzioni se presentano effetti collaterali?
- 26. Sccl considera se una funzione ha effetti collaterali durante l'ottimizzazione?
- 27. Le funzioni di test unitario con effetti collaterali?
- 28. Esistono effetti collaterali dell'utilizzo di più file string.xml?
- 29. Può sostenere le operazioni di TF con effetti collaterali?
- 30. Ci sono effetti collaterali di ritorno da una dichiarazione using()?
http://stackoverflow.com/questions/3105988/task-parallel-library-taskcreationoptions-longrunning-option-and-threadpool funziona automaticamente quando si immette il titolo della domanda nel browser? :) –
L'ho trovato! http://msdn.microsoft.com/en-us/library/dd997402.aspx – Aliostad