据我所知,Actor模型是并发理论的一种。Erlang和Scala都实现了这个理论模型,但它们的实现都不完全符合Actor模型。 从计算机科学家的角度来看,在Erlang、Scala和Actor模型中,“Actor”的概念有哪些差异?
我认为最大的区别在于实现方式,不确定是否符合资格。Erlang有一些特点: 进程不共享内存,因此一个进程中的错误不能直接溢出到另一个进程 垃圾回收在单个进程上工作,没有全局VM锁定 这些对我来说是主要的区别,这就是为什么我认为Erlang的actor模型比其他系统(包括Scala)更优越的原因。在更实际的方面,通常情况下,Scala的actor实现已经足够满足用例了。不过,在一些用例中(例如维护紧密的延迟要求,例如需要p99与p50具有相同的延迟),你唯一的选择是使用Erlang。
Erlang 18.x
和Akka 2.4.x
进行最新的比较。 - tuxdna