c# - Actor 模型相对于基于任务的异步模式的优势
问题描述
Actor 模型被认为是一种更好地利用 CPU 资源的方法。同样,使用 C# 的 async / await 进行编程也有助于程序员正确使用线程,因为线程在进行一些 IO 调用时不会被阻塞,然后可以用于处理另一个请求。
尽管具有位置透明性和容错性等功能,但使用 Akka.NET 实现的 Actor 模型相对于在 .NET 环境中实现的基于任务的异步模式有哪些优势?
解决方案
Actor 模型被认为是一种更好地利用 CPU 资源的方法。
我从来没有这样想过。对我来说,actor 模型的好处在于将代码分解为易于理解的小动作,并将它们与消息联系起来。真正的好处是对设计的影响。
与在 .NET 环境中实现的基于任务的异步模式相比,使用 Akka.NET 实现的参与者模型有哪些优势?
两者是正交的,因此比较它们没有意义。
特别是,Akka.NET 支持使用async
. 您可以选择await
直接使用,在这种情况下,在您完成接收之前,消息处理不会被视为完成async
;或者您可以将任务的结果通过管道传递给自己,在这种情况下,消息处理被认为已完成,并且一条新消息到达时带有该异步操作的结果。
推荐阅读
- swift - SwiftUI 与“AttributedGraph”崩溃
- c# - Crystal Report 在托管网站上上传数据库后停止
- javascript - 检测何时按下浏览器后退按钮 - ReactJS
- mysql - Laravel SQLSTATE[HY000] [2002] 连接被多个连接拒绝
- flutter - 在 CustomPainter 中 setState 和 shouldRepaint 是如何耦合的?
- django - /dashboard/2650/files/ 'DashModelDetailFilesView' 对象的 AttributeError 没有属性 'object'
- r - R中ODE求解器的问题
- java - FRQ 高分 B 部分:当返回位于 for 循环中时,我收到“缺少返回语句”?不应该达到回报吗?
- python - 烧瓶使用在另一个函数中以表单形式传递的变量
- html - 如何获取要插入 DOM 的 SVG 文档数据?