【问题标题】:Dataflow programming vs Actor model数据流编程与 Actor 模型
【发布时间】:2013-09-18 09:09:31
【问题描述】:

如何描述“数据流编程”和“Actor 模型”之间的区别?据我了解,它们并非无关,但又不相同。 DF是不是一个更广泛的概念,主要是区别于Control Flow模型,而Actor模型是DF的更精细和理论上的继承者?

【问题讨论】:

    标签: actor dataflow


    【解决方案1】:
    • 数据流是确定性的,允许并行。
    • Actor 是不确定的,允许并发。

    【讨论】:

    • 我没有这样想。你能详细说明一下吗? '是确定性的' - 这是否意味着 DF 图是硬编码的,因此对于相同的输入我们得到相同的结果;而 Actor 模型允许动态图重新配置,因此它是不确定的(至少可能是这样),对吧?但我看不出并行与并发以及确定性与非确定性之间的联系......
    • 似乎这里有一个解释:stackoverflow.com/questions/8582580/… 适合我。顺便说一句,您能否推荐一本 CS 文献,其中将描述您提供的区别?
    • 关于声明式/数据流并发的最佳书籍是 Concepts, Techniques, and Models of Computer Programming,作者是 Peter Van Roy 和 Seif Haridi。它很好地解释了基础知识以及它与逻辑、FP 和命令式风格的关系,涵盖了参与者、共享状态并发等等。强烈推荐。
    • 确定性数据流还允许并发sites.uclouvain.be/blog-ingi/2011/12/…。数据流也不一定是确定性的。
    • 如果我在数据流中间的某处放置一个随机数生成器,那么确定性算法又会怎样呢? ;-)
    【解决方案2】:

    DF 更宽。一个 DF 节点可能有多个输入端口,并在设置所有输入时触发。 Actor 是具有单个输入端口的 DF 节点。彩色 Petri 网甚至更宽,允许从一个地方馈送多个转换,但很难实现。

    可以在Dataflow4Java 找到 Java 中的 DF 实现。

    【讨论】:

      猜你喜欢
      • 2012-11-17
      • 1970-01-01
      • 2012-03-10
      • 2016-09-12
      • 1970-01-01
      • 2010-09-09
      • 1970-01-01
      • 1970-01-01
      • 2012-06-19
      相关资源
      最近更新 更多