阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

使用 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:031547
用户头像
臧秀涛 略懂技术的运营同学。

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

关注

评论

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

如何通过云函数操作云数据库?

天翼云开发者社区

数据库 云计算

Tipard DVD Cloner for mac(DVD克隆软件) v6.2.50激活版

影影绰绰一往直前

AnyMP4 Mac Blu-ray Player Mac(高品质蓝光播放器)v6.3.68激活版

影影绰绰一往直前

使用 GPT4V+AI Agent 做自动 UI 测试的探索 | 京东云技术团队

京东科技开发者

Web 自动化测试 UI测试 GPT

火热报名中·2024北京国际人工智能展览会(世亚智博会)

AIOTE智博会

智博会 人工智能展览会 人工智能展会 人工智能展 世亚智博会

GaussDB(DWS)中的分布式死锁问题实践

华为云开发者联盟

大数据 后端 华为云 华为云开发者联盟 华为云GaussDB(DWS)

推出可24小时直播带货的AI数字人!

青否数字人

数字人

数据服务化解耦 创新企业智能运营架构

用友BIP

数据服务

测试开发 | 人工智能无监督学习(Unsupervised Learning)

测吧(北京)科技有限公司

测试

测试开发 | 深入了解监督学习(Supervised Learning)

测吧(北京)科技有限公司

测试

文心一言 VS 讯飞星火 VS chatgpt (165)-- 算法导论13.1 5题

福大大架构师每日一题

福大大架构师每日一题

详解MRS HBase全局二级索引

华为云开发者联盟

大数据 后端 华为云 华为云开发者联盟

云行| 国云入江南 数智耀太湖,天翼云谱写江苏数智发展新篇!

天翼云开发者社区

云计算 数字化

软件测试/测试开发丨Web端测试基础知识 学习笔记

测试人

软件测试 测试开发

云服务器比传统服务器更安全的原因与实现机制

天翼云开发者社区

云计算 服务器

基于「迭代分支」的 API 开发模式

Apifox

程序员 后端 Apifox 分支 API 开发

软件测试/测试开发丨软件测试的基本概念

测试人

软件测试

网站被ddos跟cc攻击会有什么影响,该如何去解决

德迅云安全_初启

测试开发 | 拓展学习范式:人工智能半监督学习的探索与应用

测吧(北京)科技有限公司

测试

打破界限:一体化数据驱动低代码平台,构建业务生态新纪元

天津汇柏科技有限公司

低代码

Apeaksoft Blu-ray Player for Mac(蓝光视频播放器)v1.1.80激活版

影影绰绰一往直前

测试开发 | 深度学习:人工智能的前沿驱动力

测吧(北京)科技有限公司

测试

AI数字人的制作需要哪些软件?

青否数字人

数字人

【坚果派】JS开源库适配OpenHarmony系列——第一期实操

白晓明

OpenHarmony JS开源库 ArkTS开源库

好消息!华为云时习知荣获IXDC AWARD国际体验奖

华为云PaaS服务小智

云计算 华为云

Apeaksoft Video Editor for Mac(多功能视频编辑器)v1.0.52免激活版

影影绰绰一往直前

System Dashboard Pro for Mac(专业系统监视器)v1.10.4激活版

影影绰绰一往直前

测试开发 | 人工智能强化学习(Reinforcement Learning)

测吧(北京)科技有限公司

测试

System Dashboard for Mac v4.9.1激活版:提升生产力与系统性能的神器

影影绰绰一往直前

数字先锋| 审理办案“云上见”,便民利企更高效!

天翼云开发者社区

云计算 数字化

大模型应用由你创造!WAVE SUMMIT+ Workshop等你来参加

飞桨PaddlePaddle

人工智能 深度学习 开发者 WAVE SUMMIT

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