写点什么

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

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

关注

评论

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

Flutter中的GetX状态管理用起来真的那么香吗?

岛上码农

flutter ios 移动端开发 安卓开发 6月月更

Fabric.js 手动加粗文本iText

德育处主任

canvas FabricJS 6月月更

一文简述:供应链攻击知多少

穿过生命散发芬芳

供应链攻击 6月月更

C语言自定义类型的介绍(结构体,枚举,联合体,位段)

未见花闻

6月月更

什么是数据中台

奔向架构师

数据中台 数据仓库 6月月更

uni-app进阶之认证【day12】

恒山其若陋兮

6月月更

linux存储结构与磁盘划分

乌龟哥哥

6月月更

SLSA: 成功SBOM的促进剂

安势信息

开源 开源软件供应链 软件物料清单 SBOM SLSA

RabbitMQ基础知识

龙空白白

RabbitMQ

微信视频号如何用 PC 电脑做直播?

boshi

直播 视频号

ribbon

卢卡多多

6月月更

Java中使用正则检查有效日期

okokabcd

Java

远程办公之:如何成为时间管理大师?| 社区征文

甜甜的白桃

初夏征文

开发协同,高效管理 | 社区征文

武师叔

初夏征文

Java Core 「16」J.U.C Executor 框架之 ScheduledThreadPoolExecutor

Samson

学习笔记 Java core 6月月更

浅谈如何运营好小红书账号:利用好长尾词理论

石头IT视角

一款支持内网脱机分享文档的接口测试软件

Xd

Java 后端 接口测试工具

在宇宙的眼眸下,如何正确地关心东数西算?

脑极体

学C++还是学Java?做软件研发还需掌握哪些知识和技能?

dvlinker

Java c++ 数据库 网络知识 汇编代码

RabbitMQ访问Web端口报错User can only log in via localhost

龙空白白

小程序容器到底是什么

Geek_99967b

apipost接口断言详解

Xd

Java 接口测试工具

Android 11适配指南之Toast解析

yechaoa

android 适配 6月月更 11.0

openGauss Developer Day 2022正式开启,与开发者共建开源数据库根社区

JVM调优简要思想及简单案例-怎么调优

zarmnosaj

6月月更

给你讲懂 MVCC

Nick

MySQL 源码 MVCC 6月月更 深入解析

应用实践 | Apache Doris 整合 Iceberg + Flink CDC 构建实时湖仓一体的联邦查询分析架构

SelectDB

数据库 flink Doris iceberg

脚本之美│VBS 入门交互实战

Windows Server 6月月更 VBS 脚本之美

如何低成本构建一个APP

Geek_99967b

小程序

华为云低时延技术的九大绝招

坚果

6月月更

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