Erlang Actors,Scala Actors和理论概念“Actor”之间有什么区别?

时间:2015-11-24 07:41:58

标签: scala erlang akka actor

据我所知,Actor模型是一种关于并发的理论。 Erlang和Scala都实现了这个理论模型,但它们的实现都没有完全符合Actor模型。

从计算机科学家的角度来看,Erlang,Scala中的“Actor”概念和理论模型之间有什么区别?

2 个答案:

答案 0 :(得分:1)

我认为最大的不同是实施,我不确定它是否合格。在Erlang你几乎没有属性:

  • 进程不共享内存,因此进程中的错误不能直接溢出到另一个进程
  • 垃圾收集一次只能处理一个进程,没有全局虚拟机锁定

这些对我来说是主要的区别,为什么我认为Erlang的演员模型优于其他系统,包括Scala。

在更实际的方法上,Scala的actor实现经常对于用例来说已经足够了。但是很少有用例(保持严格的延迟要求,例如需要与p50具有相同的p99延迟),其中唯一的选择是使用Erlang。

答案 1 :(得分:0)

Erlang“进程”具有自己的堆,并且GC对于actor模型进行了优化,因为它是VM和语言设计所固有的。但是与Java不同,它缺少JIT。