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

hur*_*ron 11 erlang scala actor akka

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

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

Ist*_*van 2

我认为最大的区别是实施,我不确定它是否合格。在 Erlang 中,你有几个属性:

  • 进程不共享内存,因此进程中的错误不能直接溢出到另一个进程
  • 垃圾收集一次针对单个进程进行,没有全局 VM 锁定

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

在更实用的方法中,Scala 的 actor 实现对于用例来说通常足够好。不过,在少数用例中(保持严格的延迟要求,例如需要 p99 与 p50 具有相同的延迟),您唯一的选择是使用 Erlang。