写点什么

使用 TPL DataFlow 在 C#中轻松创建 Actor

  • 2013-11-25
  • 本文字数:553 字

    阅读完需:约 2 分钟

对于某些设计问题,Actor 可以让一切变得不同。 Actor 是一种可以响应和发送消息的独立实体。某种程度上,它就像是在另一个进程中运行属于它自己的小程序。但对于没有原生支持 Actor 的语言来说,构建 Actor 可能会非常困难。

出现的最主要的问题是线程管理。我们通常并不想拦截消息发送者的线程,因为那会给人一种方法调用的语义。且为每个 Actor 分配一个单独的线程并不会使程序比以前扩展多少,而在上下文切换时,线程就成了一个真正的问题。

Johan Olsson 在 TPL DataFlow 的基础上构建了自己的 Actor 库,为 C#解决了这一困境。TPL DataFlow 旨在通过异步方法将操作连接在一起。在 Block 之间传递的消息可能会被缓存、分组、分离、转换,或根据应用程序的语义和性能需要进行其他操作。

该框架的核心是一个封装了 ActionBlock 的抽象类 Actor。ActionBlock 在内部处理所有的线程问题,开发者不需要关心线程或任务。之所以是线程安全的,是因为 ActionBlock 默认会被序列化。如果同时发送两条消息,ActionBlock 会缓存第二条消息,直到第一条消息处理完毕。这个行为可以通过 ExecutionDataflowBlockOptions 进行修改。

你可以在 Johan Olssion 的“使用TPL DataFlow 在C#中实现Actor 模型”的文章中了解他的工作,并查看示例代码。

查看英文原文: Actors Made Easy with C# and TPL DataFlow

2013-11-25 07:232033
用户头像

发布了 59 篇内容, 共 23.4 次阅读, 收获喜欢 3 次。

关注

评论

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

专业强大的字体管理软件:RightFont 直装激活最新版

mac大玩家j

字体设置 Mac软件 字体设计 字体管理工具

文心一言 VS 讯飞星火 VS chatgpt (102)-- 算法导论9.3 8题

福大大架构师每日一题

福大大架构师每日一题

4点策略调优!智能外呼助力汽车行业盘活客户价值

中关村科金

智能外呼系统

什么是API商品数据接口?该怎么使用?

Noah

API 安全 API 文档 API 开发

Spring Boot 中常见且必备的注解解析

Liam

Java 程序员 Spring Boot 后端 注解

牵引数字经济重要增长极,天翼云智能边缘云助力元宇宙加速发展!

天翼云开发者社区

云计算

DxO FilmPack 6 for Mac(胶片模拟效果滤镜软件) 6.15.0完美激活版

mac

图像处理软件 苹果mac Windows软件 DxO FilmPack 6

DApp区块链公链智能合约质押挖矿系统开发

l8l259l3365

探索古彝文AI识别技术:助力中国传统文化的传承与发扬

颜淡慕潇

人工智能 算法 AI识别技术 前言技术

深圳华秋电子有限公司与共熵服务中心缔结战略合作伙伴关系

华秋电子

合作伙伴

关于 TDengine 的论文资料都在这里了,等你来取!

TDengine

时序数据库 国产数据库 ​TDengine

KubeCon China 2023 | 以开源促进智能世界底座共建,给世界提供更好选择

新消费日报

WIFI7-802.11be/EHT-IPQ9574-IPQ9554-QCN9274-QCN6274 support-320/240MHz and Multi-RU technology

wifi6-yiyi

WiFi7 ipq9554 802.11be

元服务助力山东舜和酒店数字化转型,促鸿蒙生态繁荣!

最新动态

三个要点,掌握Spring Boot单元测试

互联网工科生

Spring Boot 分层架构 单元测试 JUnit Mockito

得物API元数据中心探索与思考

得物技术

API管理 元数据中心 自动解析

[分组聚合]基于Lucene8进行多值字段分组聚合(多属性字段)

alexgaoyh

lucene Spring Boot 分组聚合 单字段 多属性

长沙企业采购云管平台选哪家厂商?联系电话多少?

行云管家

云计算 云服务 云管理平台 云管平台

供应链透明度的代币开发

区块链软件开发推广运营

交易所开发 dapp开发 区块链开发 NFT开发

基于Java开发的工作流系统(springboot+activiti源码)

金陵老街

springboot Activit

DxO PureRAW for Mac(RAW照片处理器)v3.6.0永久激活版

mac

苹果mac Windows软件 DxO PureRAW raw智能照片处理工具

Petal 出行新人超值百元大礼包,中秋国庆优惠等你领!

最新动态

华秋DFM新功能丨可焊性检查再次升级,抢先体验!

华秋电子

ARTS-week7(23.9.25-23.9.30)

EchoZhou

强强联合!天翼云与神州信息共助银行数字化转型升级!

天翼云开发者社区

数据库 云计算

苹果电脑pdf文档大小压缩推荐 PDF Squeezer激活中文最新版

胖墩儿不胖y

Mac软件 pdf编辑器 pdf处理工具

What's new in Pika v3.5.1

apache/dubbo-go

redis redis sentinel Pika

支持信创系统的数据库审计系统有哪些?用哪家好?

行云管家

数据库 信创 数据安全 国产化 数据库审计

打造香港最安全便捷的银行,众安银行发布首份技术白皮书

ZA技术社区

科技 众安保险 ZA Bank 虚拟银行

“开放原子开源大赛”来袭, inBuilder低代码开发创新赛火热报名中!

inBuilder低代码平台

中秋国庆花式玩法,用低代码DIY假日大屏“Vlog”

华为云开发者联盟

低代码 开发 华为云 华为云开发者联盟 企业号9月PK榜

使用TPL DataFlow在C#中轻松创建Actor_.NET_Jonathan Allen_InfoQ精选文章