写点什么

RAD Studio XE7 提供了针对 Object Pascal 和 C++ 的任务并行库

  • 2014-11-10
  • 本文字数:747 字

    阅读完需:约 2 分钟

RAD Studio XE7 的一个主要特性是其并行编程库 Parallel Programming Library)。XE7 为包括 Windows、OS X、iOS 和 Android 在内的多个平台提供了基于任务的并行处理能力。跟 Mono 不同的是,这组工具为所有的目标平台提供了完全的原生应用。

XE7 并行编程库的核心是 task 和 future 。它们同时提供了接口( ITask IFuture )和类( TTask TFuture )供用户使用。这和.NET 的 Task 和 Task类是一样的。

当处理不连续的操作时,task 和 future 通常是独立使用的。想并行处理一组操作,可以使用封装器 。比如, 如果想并行化一个for 循环,可以使用下面这段代码来抽象任务逻辑:

复制代码
TParallel.For(1, Max, procedure (I: Integer)
begin
if IsPrime (I) then
TInterlocked.Increment (TotalPrimes);
end);

对于那些不熟悉 Object Pascal 的人来说,这里的 procedure 关键字创建了一个匿名函数。这跟 VB 的 Function 关键字和 C#的箭头语法的行为相似。

请注意 TInterlocked.Increment 类的用法。这是 Windows 平台的 Interlocked.Increment 对应的一个平台无关版本。没有它,TotalPrimes 计数可能会由于资源竞争而导致错误。因此,虽然这个库简化了并行编程,但是开发人员仍然需要确保正确地使用它。

并行编程库的一个主要缺点不是代码本身,而是文档。在所提供的 18 个类和类型中,只有 7 个有文档,而文档也只是一行文字描述。虽然对免费或者开源的库来说,有时也是可以接受的,但是对于一个现代的商业产品,却是很少见的。

查看英文原文: A Task Parallel Library for Object Pascal and C++


感谢臧秀涛对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-11-10 10:451911

评论

发布
暂无评论
发现更多内容

免费领取云主机,在华为开发者空间玩转YOLOV3

华为云开发者联盟

人工智能 云主机 目标检测 YoloV3 企业号 8 月 PK 榜

JetBrains IntelliJ IDEA 2020 中文无限试用版 Mac版 IDEA 2020下载安装

Rose

万界星空科技MES中的仓库管理功能

万界星空科技

mes 云mes 万界星空科技 出入库管理 仓库管理

iOS数据恢复Disk Drill for Mac v5.4.1425中文版 含Disk Drill激活码

理理

Swish for Mac(MacBook触控板窗口管理) v1.10.3免激活版

Mac相关知识分享

云MES:数字化转型的引擎,企业上云的强力推手

万界星空科技

企业上云 mes 5G 企业上云 云mes 万界星空科技

记一次JSF异步调用引起的接口可用率降低

京东科技开发者

AirPods耳机管理工具AirBuddy for mac 兼容macOS14系统 支持m芯片

理理

支持m1/m2/m3 graphpad prism 10激活直装版下载 医学绘图工具

理理

(成功率稳定)京东商品详情API快速上手:初学者的实用指南

代码忍者

API API 文档 API 测试

用 AI 解锁技术调研的新姿势

京东科技开发者

文献解读-遗传病-第二十六期|《癫痫的临床特征、诊疗和KCNH5突变》

INSVAST

基因测序 基因数据分析 遗传病 文献解读

高并发系统的艺术:如何在流量洪峰中游刃有余

京东科技开发者

​ 精选一款/开源MES生产制造执行系统

万界星空科技

mes #开源 开源mes 万界星空科技 mes源码

GreatSQL 8.0.32-26 今日发布

GreatSQL

新版本 greatsql 新版本发布

360联合国内15个最强大模型推出“AI助手”碾压GPT4o!全球首部《人工智能法案》正式生效!|AI日报

可信AI进展

人工智能

高并发系统的艺术:如何在流量洪峰中游刃有余

京东科技开发者

Network Performance Comparison for Industrial Automation Systems: IPQ9574 vs. IPQ6018

wallyslilly

系统整容纪:用知识来"武装"自己~认识MySQL的锁与事务

京东科技开发者

LED弧形屏:设计创新与成本效益的平衡

Dylan

技术 LED显示屏 全彩LED显示屏 led显示屏厂家 市场

基于人工智能的代码分析与 Bug 检测实战

测试人

软件测试

第七在线联手深服协:以科技之力,绘就时尚 AI 智能商品管理新篇章

第七在线

祝贺!亚马逊云科技与伊克罗德信息签署为期4年市场拓展战略合作计划

伊克罗德信息科技

实践出真知:Agents 领域“一年打怪升级”的经验分享

Baihai IDP

程序员 AI LLMs 企业号 8 月 PK 榜 AI Agents

axure rp8安装包下载 Axure RP 8 for Mac中文永久密钥分享

理理

分享 | 某外资保险集团:提升数字身份管理水平 助力中国业务高速发展

芯盾时代

身份安全 统一身份认证 保险业

JetBrains GoLand v2023.3.2中文密钥版 及详细安装教程

Rose

流程挖掘帮助中国管理咨询行业实现转型升级

望繁信科技

流程挖掘 流程资产 流程智能 上海望繁信科技 陈果George

Principle for Mac(交互式UI原型设计神器) v6.33中/英文版

Mac相关知识分享

Cisdem PDFMaster for mac(专业PDF编辑转换器)v6.5.0激活版

Mac相关知识分享

【行云流水线】满足你对工作流编排的一切幻想~skr

京东科技开发者

RAD Studio XE7提供了针对Object Pascal和C++的任务并行库_C++_Jonathan Allen_InfoQ精选文章