gpt4 book ai didi

scala - 延迟评估和死锁

转载 作者:行者123 更新时间:2023-12-01 13:29:24 25 4
gpt4 key购买 nike

最近我决定尝试一下,并开始阅读 Raul Estrada 的书“Fast Data Processing Systems with SMACK stack”。在前两章之后,我认为它是“hello worlds”的不错的编译,除非我遇到过:

As we saw, lazy evaluation also prevents deadlocks and bottlenecks, because it prevents a process waiting for the outcome of another process indefinitely.

我感到非常惊讶,并试图为懒惰评估防止死锁的说法找到任何论据。该声明是关于 Scala 和 Spark 的。不幸的是我没有找到任何论点。据我所知,为了避免死锁,您必须确保至少其中之一永远不会发生:

  • 互斥
  • 锁定并等待
  • 无抢占
  • 循环等待

惰性求值如何防止它们中的任何一个?

最佳答案

惰性求值本身并不能防止死锁,但它与另一个概念密切相关,即计算图。由于Spark将计算描述为依赖的谱系,它可以验证计算图是非循环的(著名的DAG),因此不存在可能导致循环等待的情况。

在高层,Spark 通过禁止嵌套转换和操作来强制执行此操作,这意味着阶段之间没有隐藏的依赖关系。

关于scala - 延迟评估和死锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46746428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com