参与者模型是一种可以更好地利用CPU资源的方法。同样,使用C#的async / await进行编程也可以帮助程序员正确使用线程,因为在进行某些IO调用时不会阻塞线程,然后可以将其用于处理另一个请求。
尽管具有位置透明性和容错性之类的功能,但使用Akka.NET实现的参与者模型相对于.NET环境中实现的基于任务的异步模式有何优势?
答案 0 :(得分:2)
参与者模型是一种可以更好地利用CPU资源的方法。
我从来没有那样想过。对我而言,参与者模型的好处在于将代码分解为易于理解的小动作,并将其与消息联系起来。对设计的影响才是真正的好处。
与在.NET环境中实现的基于任务的异步模式相比,使用Akka.NET实现的参与者模型有什么优势?
这两个是正交的,因此比较它们是没有意义的。
尤其是,Akka.NET支持使用async
。您可以选择直接使用await
,在这种情况下,只有完成async
的接收之后,消息处理才被认为是完整的;或者,您也可以通过管道将任务的结果发送给自己,在这种情况下,消息处理被视为完成,并且带有异步操作结果的 new 消息会到达。