数据流编程与Actor模型

4

如何描述“数据流编程”和“Actor模型”的区别?据我所知,它们并不无关,但也不完全相同。 DF是一个更广泛的概念,其要点是与控制流模型的区别,而Actor模型则是DF的更加详细和理论上的继承者。

2个回答

13
  • 数据流是确定性的,这使得并行处理成为可能。
  • 而Actor则是非确定性的,这使得并发处理成为可能。

3
我没有以这种方式考虑过这个问题。您能否详细解释一下?“是确定性的”-这是否意味着DF图是硬编码的,因此我们针对相同的输入得到相同的结果;而Actor模型允许动态图形重构,因此它是不确定的(至少可能是如此),对吗?但我看不出并行性与并发性之间以及确定性与非确定性之间的联系。 - pavel.baravik
似乎这里有一个解释:https://dev59.com/Imoy5IYBdhLWcg3wZdKr 对我很合适。顺便问一下,你能推荐一本计算机科学文献吗?其中包含你提供的区别的描述? - pavel.baravik
5
关于声明式/数据流并发编程的最佳书籍是Peter Van Roy和Seif Haridi所著的《计算机编程的概念、技术和模型》。该书详细解释了基础知识,并说明它与逻辑、函数式编程和命令式风格的关系,涵盖了演员模型、共享状态并发等方面。强烈推荐。 - Jonas Bonér
10
确定性数据流还允许并发操作。同时需要注意,数据流不一定是确定性的。 - Jean Vincent
1
如果我在数据流的中间放置一个随机数生成器,那么确定性算法怎么办?;-) - inf3rno

4

DF更为广泛。 DF节点可以有多个输入端口,并在所有输入都设置时触发。Actor是具有单个输入端口的DF节点。彩色Petri网更为广泛,允许从单个位置提供几个转换,但难以实现。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接