适合C# Actor的消息执行方式(1):Erlang中的模式匹配
2010-09-30 20:50:33 来源:WEB开发网前言
Actor模型为并行而生。由于现在单台机器中独立的计算单元也越来越多,Actor模型的重要性也越来越大。Actor模型的理念非常简单:天下万物皆为Actor,Actor之间通过发送消息进行通信。不同的Actor可以同时处理各自的消息,从而获得了大规模的并发能力。
Erlang基于Actor模型实现,我们甚至可以这样认为,没有Erlang在业界竖立的丰碑,Actor模型便不会如此受人关注。目前,几乎所有的主流开发平台上都有了Actor模型的实现,如Java平台下的Jetlang以及.NET平台下的MS CCR和Retlang;还有一些Actor框架专为特定语言设计,如F#的MailboxProcessor以及Scala的Actor类库;甚至微软还基于MS CCR构建了一门新的语言Axum。
不过对于.NET平台下的开发人员来说,我们最常用的语言是C#。无论您是在使用MS CCR还是Retlang(亦或是我写的ActorLite),在消息的执行阶段总是略显尴尬。本文的目的便是提出一种适合C# Actor的消息执行方式,而这种执行方式还会成为我以后公开的C#中“模式匹配”的基础。
Erlang中的执行方式
本文将分为三个部分,您目前正在阅读的第一部分,将会观察Erlang是如何执行消息的。有对比才会有差距,也正是由于Erlang在Actor模型上的示范作用,我们才会意识到C# Actor在使用上有多么的不方便。
作为示例,我们还是使用最经典的乒乓测试。乒乓测试的效果很简单:ping和pong为两个Actor对象,首先由ping向pong发送一个“Ping”消息,pong在接受到Ping消息之后,将会向ping发送一个“Pong”消息。在双方“乒来乓去”几个回合后,ping将会向pong发起“Finished”,从而停止交互。
乒乓测试的Erlang的实现代码如下:
- ››适合做商品团购营销的网站
- ››适合所有浏览器hack的CSS技巧
- ››消息称中国移动即将获得iPhone 4销售权
- ››适合C# Actor的消息执行方式(1):Erlang中的模式...
- ››适合C# Actor的消息执行方式(2):C# Actor的尴尬...
- ››适合C# Actor的消息执行方式(3):中看不中用的解...
- ››适合C# Actor的消息执行方式(4):阶段性总结
- ››适合C# Actor的消息执行方式(5):一个简单的网络...
- ››适合C# Actor的消息执行方式(6):协变与逆变
- ››适合1-5个月经验的seo优化全过程分享
- ››消息称联通高层赴美谈引入iPhone4 将带WiFi
- ››消息称微软将在近期发布IE9 beta
赞助商链接