【问题标题】:Deadlocks in Actor based Programming languages基于 Actor 的编程语言中的死锁
【发布时间】:2017-11-16 20:54:50
【问题描述】:

在 Scala 或 Elixir 等基于 actor 的语言中还会出现死锁吗?如果是,如何发现和避免?

【问题讨论】:

    标签: scala erlang deadlock actor


    【解决方案1】:

    Scala 不是基于角色的语言。 Akka 只是一个库(恕我直言,它经常被滥用)。

    可能会发生死锁,因为您可以在 receive 方法中运行任意代码。 为防止这种情况发生 - 不要直接在参与者代码中使用任何阻塞/同步,也不要调用在内部使用阻塞的外部对象的方法。

    【讨论】:

      【解决方案2】:

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

      但在大多数情况下,您必须努力实现它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-05
        • 1970-01-01
        • 2011-12-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-25
        • 2020-02-26
        相关资源
        最近更新 更多