5
A
回答
4
使用TPL的地方,因爲它是一種更清晰,更具說明性的方式來表達您的並行性需求。
MSDN解釋「TPL動態擴展併發度以最有效地使用所有可用的處理器。此外,TPL處理工作分區,ThreadPool上線程的調度,取消支持,狀態管理和其他低級細節,通過使用TPL,您可以最大限度地提高代碼的性能,同時關注您的程序旨在完成的工作。「
另請參閱http://www.albahari.com/threading/part5.aspx其中詳述了「數據並行」和其他TPL好處的好處。
1
並行擴展很適合並行化小任務。並行擴展確實提供了代碼結構。例如ForEach替換了正常的foreach語句,而是將它們並行執行。這是平行擴展旨在用於的級別。
當您創建一個完整的多線程應用程序(例如Web服務器)時,仍然需要使用正常的線程和同步。當然,WCF和IIS已經爲你解決了這些問題。
當然,有線程池解決的中間地帶。
1
任務並行庫不主要用於線程同步,它設計用於實現更多任務。 TPL旨在便於執行以下步驟:
- 將其分成小塊。
- 通過多線程並行執行這些塊。
- 以線程安全和高性能的方式在結果可用時對結果進行整理。
只有第三項與線程同步有關。當然,您仍然可以使用已知的線程同步原語以線程安全的方式執行歸類結果(例如,當您應該自行整理此結果時,使用類Parallel)。
相關問題
- 1. 線程同步@原生Android
- 2. 線程vs同步
- 3. 任務並行庫:應用程序產生了多少線程?
- 4. 線程同步VS進程同步
- 5. 沒有UI線程的任務同步
- 6. 微軟的CCR vs任務並行庫
- 7. 異步任務vs任務
- 8. 多線程同步原語
- 9. 並行任務與同步arraylist
- 10. 任務vs線程池
- 11. 異步任務線程源
- 12. 同步vs線程安全集合vs原子包裝類vs鎖
- 13. 並行任務vs代表
- 14. 異步運行任務並在線程激活後返回
- 15. 使用Web Service避免線程的並行(異步)任務
- 16. 同步grunt.js任務執行
- 17. 線程vs begininvoke vs異步
- 18. 線程vs處理程序vs異步任務android中的套接字?
- 19. 如何同步2個異步線程/任務
- 20. 不同的使用任務並行庫
- 21. 的Android異步任務Vs的本地Java線程
- 22. Java線程wait()&notify()與並行任務
- 23. Java線程任務的併發執行
- 24. 加入任務並行線程
- 25. 設計並編寫可以執行非同步或同步任務的任務調度程序
- 26. Android服務/異步任務/線程
- 27. 同步任務
- 28. 任務同步
- 29. Java線程:爭用條件vs同步
- 30. 多線程執行不同任務