为什么Erlang进程创建和消息传递时间少于java和C#

时间:2010-08-24 13:31:52

标签: process erlang

我在互联网上搜索了Erlang 流程模型,并在 Joe Armstrong 的一个演讲中找到了一些图alt text slides 3-4 >。它们显示了Erlang,java和C#之间流程创建和消息传递时间之间的很大差异。有人能告诉我这种 差异背后的原因吗?

2 个答案:

答案 0 :(得分:7)

在Erlang中,进程不是真正的进程。它们是由语言处理的轻型结构。消息传递也由语言处理,尽可能使用共享内存。

另一方面,其他语言使用真正的线程/进程,因为它们没有像这样的内置光结构。因此,这些结构有点重,使用线程原语进行通信(较慢)。

我不知道你的图表,但我想这表明Erlang的流程更好。它已经完成了对本质上不同的事情的比较,但是它表明Erlang摇滚来模拟使用消息进行通信的独立对象(在其他语言中你无法做到的事情)。

答案 1 :(得分:3)

Erlang进程非常轻量级。实现甚至不需要将OS线程分配给Erlang进程。这与Erlang的功能性有关。