智能体刷屏的背后,是 AI 应用拐点的来临?AICon 北京站议程重磅公布,50+ 硬核分享不容错过 了解详情
写点什么

Zlatko Michailov 再谈任务并行库数据流(TPL Data Flow)

  • 2012-02-27
  • 本文字数:1123 字

    阅读完需:约 4 分钟

我们对《自定义任务并行库数据流块实现指南》(Guide to Implementing Custom TPL Dataflow Blocks)的作者——Zlatko Michailov 进行了一个简短的采访。

InfoQ:在你看来,TPL 数据流(TPL Dataflow)最适合于哪些应用程序?而对哪些应用程序又不太适合?

TPL 数据流是一个流处理平台,它可以处理音频 / 视频帧流、价格报价波动流等。当消息以高频率到来时,TPL 数据流特别适用。使用它之后,你会看到高效率平台和非高效平台之间的差距。

通常使用数据流平台的一个额外好处是:数据流网络拓扑会参与到处理过程中。应用程序会由一个个小而精的代理(delegate)构成,从而使应用程序更易维护。

InfoQ:你认为 TPL 数据流今后会是一个少数人使用的高级技术?还是你认为它会很大程度取代 Task,就像 Task 取代线程一样?

我认为都不会。TPL 数据流不会取代 Task。(我也不认为 Task 取代了线程;Task 只是填补了并发编程里的一块空白。)TPL 数据流借用 Task 实现了众多模式。虽然其主模式是流处理,但是每一个数据流块(block)都很常规,且可以用于其他用途。例如,WriteOnce 块被设计用作请求 - 响应机制——WriteOnce 块实例化基于请求之上,一旦响应数据写回它就会自动完成,从而让请求方可以继续异步地进行工作。另外一个例子是结合 MaxDegreeOfParallelism 选项的 ActionBlock——它可以用作限流(throttling mechanism),防止同时被处理的任务数目超过指定数量。第三个例子是结合 BoundedCapacity 选项的 BufferBlock,它用作对数据来源进行限流。所以在我看来,TPL 数据流在普遍情况下都是适用的。

InfoQ:你觉得对于刚刚使用 TPL 数据流的新手而言,需要学习的最重要的东西是什么?

纯属个人意见——最重要的是需要意识到线程很昂贵,并且不应当压迫操作系统创建不必要的线程。开发人员应当关注任务间的从属关系,并依靠操作系统和框架完成那些任务的安排。

对于 TPL 数据流,我建议开发人员对每个块进行单独测试。没准你会发现某个块(block)实现的模式是你经常使用的那个。如果看到某个模式和你用过的很接近但是又不是非常像,可以考虑将多个内置块进行封装来组成该模式。如果那样做还不奏效,你也许可以编写一个简单的同步块来填补这个空缺。

InfoQ:你建不建议将 TPL 数据流和 Windows 工作流(Windows Workflow)混在一起使用?

Windows 工作流的目标是让花上数天或者甚至数月才能持久性流能够完成。它关注的是可靠性而不是性能。相反,TPL 数据流纯粹以性能为目的。它的目标就是使用最有效可行的方法来利用所有可用的硬件资源。所以技术上来说,你是可以混用这两个技术的。我的猜想是你可以将 TPL 数据流放入 Window 工作流中的某个步骤中来使用。

查看英文原文: http://www.infoq.com/news/2012/01/Zlatko-TPL

2012-02-27 06:522062
用户头像

发布了 125 篇内容, 共 40.7 次阅读, 收获喜欢 5 次。

关注

评论

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

工作流如何实现?集成?springboot+vue+activiti技术栈

金陵老街

王文京受邀在财政部“会计大讲堂”做信息技术驱动当代会计创新发展的专题报告

用友BIP

智能会计

轻量应用服务器价值典范,云耀云服务器助力企业穿越经济周期

轶天下事

打造承载百倍级增长后台背后的力量

优测云服务平台

性能优化 后台开发 性能测试 压力测试 性能压测

遥遥领先的不仅是华为Mate60 Pro+,华为云正在数字赋能万千中小企业

轶天下事

华为云耀云服务器 L 实例:为你揭开轻量应用服务器的神秘面纱

轶天下事

聚焦私域营销降本提效,国联股份与火山引擎数智平台展开合作

字节跳动数据平台

大数据 数字化转型 数据平台 火山引擎 企业号9月PK榜

降维算法了解一下

小魏写代码

真·Redis缓存优化—97%的优化率你见过嘛? | 京东云技术团队

京东科技开发者

redis 缓存 中间件 企业号9月PK榜 缓存优化

华为云盘古大模型for医学,“良医小慧”让智慧诊疗触手可及

彭飞

OpenHarmony装饰指定自定义组件:@BuilderParam装饰器

OpenHarmony开发者

OpenHarmony

解析Prompt自然语言处理的关键因素

百度开发者中心

#人工智能 ChatGPT Prompt 千帆大模型平台

软件开发、管理全周期文档整理,满足开发、验收、投标支撑

金陵老街

征稿啦!第 18 届「中国 Linux 内核开发者大会」重磅启动

OpenAnolis小助手

Linux 开发者 内核 龙蜥社区 CLK

技术向上,场景向下丨华为云828 B2B企业节打通云上路径

轶天下事

K-最近邻算法(KNN)

小魏写代码

利用ChatGPT,SQL数据分析学习效率翻倍

百度开发者中心

#人工智能 ChatGPT SQL Server

在 Kubernetes 环境中实现证书管理的自动化

NGINX开源社区

nginx Kubernetes 证书管理

基于Java开发的数字采购系统(供应商、询价、招标、订单送货)

金陵老街

在AI的风口上,百度营销如何助力企业抢占先机?

彭飞

基于Prompt和迁移学习的文本分类优化

百度开发者中心

自然语言处理 #人工智能

DME²,端点科技定义未来企业信息管理架构

科技热闻

【稳定性】关于缩短MTTR的探索 | 京东物流技术团队

京东科技开发者

系统稳定性 系统稳定高可用 MTTR 企业号9月PK榜

轻量应用服务器选哪家?华为云耀云服务器L实例告诉你如何选择

轶天下事

中小企业请收藏丨轻量应用服务器企业选购避坑指南

轶天下事

游戏服务商Latis Global参展2023 ChinaJoy B2B

科技热闻

使用ChatGPT快速构建优质网站模板的方法

百度开发者中心

#人工智能 ChatGPT 千帆大模型平台

Zlatko Michailov再谈任务并行库数据流(TPL Data Flow)_.NET_Jonathan Allen_InfoQ精选文章