写点什么

使用 TPL Dataflow 处理生产者 / 消费者问题

  • 2014-01-28
  • 本文字数:560 字

    阅读完需:约 2 分钟

在最简单的情况下,生产者 / 消费者场景很容易处理。生产者向一个线程安全的队列中推送消息,消费者从该队列中取消息。每一端可以有一个专用线程,这就行了。至少在并发症状出现之前是行得通的。

并发症状是多方面的。你可能需要向多个消费者分发或广播消息,而不是只有一个消费者。因为性能原因,在执行某些操作之前,可能需要批量提交一些请求。也可能有多个步骤,而如果每个步骤用一个专用线程的话,负载会很繁重。或者是随着消息在线程间跳转,上下文切换会影响延迟。

TPL Dataflow 就是为解决这些问题而设计的。不同于使用线程,构成数据流的轻量级块(Block)按需使用和分享线程池中的线程。但是和任何新框架一样,我们有很多东西要学习,而且很多比较高级的选项可能会掩盖基础知识。

为简化入门,Taskmatics 的 Dave Marini 撰写了一篇文章——“使用流:利用 TPL Dataflow 结构简化生产者 / 消费者问题的处理( Going with the Flow: Simplifying Producer/Consumer Processing with TPL Dataflow Structures )”。Dave 使用一个订单交付工作流(如上图所示),介绍了大多数场景需要的基本块:

  • BufferBlock
  • BroadcastBlock
  • BatchBlock
  • TransformManyBlock
  • ActionBlock

这篇文章还介绍了一些容易被忽略的陷阱,比如刷新批处理和完成工作流等。

查看英文原文: Producer/Consumer Processing with TPL Dataflow

2014-01-28 09:032109
用户头像
臧秀涛 略懂技术的运营同学。

发布了 300 篇内容, 共 148.6 次阅读, 收获喜欢 35 次。

关注

评论

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

亮屏 0.3 秒必弹!唤醒沉睡用户秘籍

MobTech袤博科技

美业数字化运营解决工具

微擎应用市场

最受欢迎的三方库之EventBus

桃花镇童长老

HarmonyOS

SNMP协议在设备监控中的使用

京东科技开发者

运营总监的秘密武器:秒验一键登录如何提升次日留存

MobTech袤博科技

YashanDB的热备份与冷备份机制讲解

数据库砖家

从开发者角度看数据库架构进化史:JDBC - 中间件 - TiDB

TiDB 社区干货传送门

YashanDB的可维护性如何保障企业的长期发展?

数据库砖家

医患协同在线诊疗解决方案

微擎应用市场

YashanDB的未来发展趋势

数据库砖家

鸿蒙推送适配指南:3 步极速集成

MobTech袤博科技

在Windows11下使用WSL编译Tikv9.0

TiDB 社区干货传送门

安装 & 部署

YashanDB的企业级应用特性与优势分析

数据库砖家

YashanDB的写入性能与读取性能哪个更优?

数据库砖家

程序员必看!30 分钟集成一键登录 SDK

MobTech袤博科技

36 节点排查:推送丢失溯源指南

MobTech袤博科技

服务器断电,PD集群无法启动,修复PD集群及cluster ID mismatch问题

TiDB 社区干货传送门

8.x 实践

最受欢迎的三方库之harmony-web

桃花镇童长老

HarmonyOS ArkTS

YashanDB的扩展性如何支持企业未来的需求?

数据库砖家

YashanDB的数据加密功能,保护敏感信息的方法

数据库砖家

注册转化率飙升 50%?一键登录的魔法来了

MobTech袤博科技

推送点击率翻倍秘籍:7 个 A/B 测试模版

MobTech袤博科技

【TiDB 社区智慧合集】 TiDB x 运营商|掌上营业厅、账务、物联网等多核心业务场景的实战应用案例

TiDB 社区干货传送门

【KWDB 2025 创作者计划】_一文带你了解 KWDB 数据库

KaiwuDB

全文搜索功能已上线 TiDB Could Serverless(附实践教程)

TiDB 社区干货传送门

【FAQ】HarmonyOS SDK 闭源开放能力 —Push Kit(13)

HarmonyOS SDK

harmoyos

YashanDB的扩展应用:推动新兴技术的发展

数据库砖家

YashanDB的数据压缩功能如何提升存储效率

数据库砖家

YashanDB的数据质量管理,确保准确与完整性的方法

数据库砖家

凌晨推送指南:唤醒率提升 3 倍

MobTech袤博科技

程序员夜话:5 年 SDK 体积瘦身史

MobTech袤博科技

使用TPL Dataflow处理生产者/消费者问题_.NET_Jonathan Allen_InfoQ精选文章