【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

使用 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:231889
用户头像

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

关注

评论

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

太简单了!这套Java异常处理的总结,80%的人都没看过

牛哄哄的java大师

Java

NumPy之:结构化数组详解

程序那些事

Python 数据分析 Numpy 程序那些事

一次过透气浆、印一次透气浆

C13713145387

透气胶浆 一次过透气浆

Golang实现文件复制的技巧

liuzhen007

Go 语言 5月日更

数字资产的发行是全球都无法阻挡的大趋势!

CECBC

数字资产

区块链与物联网融合发展都会有哪些机遇与挑战

CECBC

区块链

展开说说,Spring Bean IOC、AOP 循环依赖

小傅哥

Java spring 小傅哥 ioc 循环依赖

postgresql数据库 timescaledb 时序库 超级表 块的压缩(compress_chunk()的应用)

Yang

数据库 postgresql

架构实战营 模块二 作业

Pitt

架构实战营

进击的速溶咖啡:当中国AI开始玩工业化

脑极体

网络攻防学习笔记 Day5

穿过生命散发芬芳

5月日更 网络攻防

超级全面的测试用例设计,你确定不来看一看?

程序员阿沐

软件测试 测试用例 测试工程师

建筑行业全周期区块链产融平台

CECBC

建筑行业

打破思维定式(二)

Changing Lin

5月日更

模块三作业:消息队列详细设计文档

薛定谔的指南针

架构实战营

Java中用户线程和守护线程区别这么大?

王磊

Java 并发编程 多线程 5月日更

爽面弹力胶浆、哑面弹力胶浆

C13713145387

爽面弹力胶浆

哑面防水尼龙胶浆Nylon printing paste

C13713145387

哑面防水尼龙胶浆

Vue Router 10 条高级技巧

Thrash

技巧

算法训练营 - 学习笔记 - 第五周

心在飞

自研消息队列架构设计文档

菠萝吹雪—Code

架构实战营

采取有效云网络安全策略的5个基本步骤

浪潮云

云计算

OAuth 2.0 与 OIDC

Zhang

OAuth 2.0 OIDC

牛仔底色保护浆(喷砂工艺)

C13713145387

牛仔底色保护浆

Google官方关闭binary后,Android工程师怎么办?

Changing Lin

5月日更

入门到精通!阿里码农熬了2晚整理的Java工具,真香

飞飞JAva

Java java工具类

4.2 Go语言从入门到精通:延迟函数 defer

xcbeyond

defer Go 语言 5月日更

Spring-技术专题-设计模式和研究分析

洛神灬殇

spring 设计模式 原理分析 5月日更

融云亮相 CDEC2021 上海站 全场景通信能力赋能企业数字升级

融云 RongCloud

MySQL数据迁移那些事儿

Simon

MySQL 数据迁移

哑面爽滑肤感胶浆

C13713145387

哑面爽滑肤感胶浆

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