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. 多线程执行不同任务