探索并行实践:从任务到模式的并行编程之旅
在传统的并行编程中,我们往往聚焦于线程和数据共享,依赖操作系统和语言运行库提供的线程及同步相关函数。然而,这种方式不仅效率低下,还容易出错。因此,近年来并行编程的重点逐渐从线程转向了任务和模式。本文将深入探讨任务和模式在并行编程中的应用,以及如何解决其中的一些常见问题。
1. 技术要求
所有示例代码使用Delphi 11.3 Alexandria编写,大部分示例也可在Delphi XE及更高版本中运行。你可以在GitHub上找到所有示例代码: https://github.com/PacktPublishing/Delphi-High-Performance—Second-Edition/tree/main/ch9
2. 任务与模式概述
- 线程与任务的区别 :线程是操作系统的概念,允许我们同时执行进程的多个部分;而任务只是我们希望以这种方式执行的代码部分。关注线程时,我们要告诉系统如何工作;使用任务时,我们只需告诉库我们想要完成的工作,无需花费时间在设置线程和通信机制上。
- 任务的局限性 :尽管任务比线程更高级,但有时仍然过于底层。例如,使用基本任务并行迭代循环仍然需要一些工作,而使用特定的使用模式(如并行for循环)则更为简单。
- 常见的并行模式
超级会员免费看
订阅专栏 解锁全文
578

被折叠的 条评论
为什么被折叠?



