基于Actor的编程语言中的死锁

时间:2017-06-14 15:45:26

标签: scala erlang deadlock actor

Scala或Elixir等基于演员的语言是否仍会出现死锁?如果是,如何检测并避免它们?

2 个答案:

答案 0 :(得分:2)

Scala不是基于演员的语言。 Akka只是一个图书馆(它经常被滥用恕我直言)。

可能会发生死锁,因为您可以在receive方法中运行任意代码。 为了防止它 - 不要直接在演员代码中使用任何阻止/同步,也不要调用外部对象'在内部使用阻塞的方法。

答案 1 :(得分:1)

在Erlang中,这是可能的。您可以让两个进程同时等待另一个进程发送消息。一般来说,这不是一个主要问题。

但在大多数情况下,你必须努力实现这一目标。