9

有人可以解释我为什么以及如何使用 Clojure Dataflow 编程 API,因为我似乎在互联网上找不到太多关于它的信息。

4

1 回答 1

12

我认为阅读有关数据流编程是什么的其他信息最有帮助。恕我直言,Groovy GPars的家伙有一些关于dataflow的最佳文档。GPars邮件列表过去就数据流、CSP 和参与者等进行了大量讨论,是提问的好地方。

其他一些有用的链接:

Clojure impl非常简单,基本上是在 ref 之上构建数据流变量并在这些 ref 上监视函数。您可能会发现实际代码测试比文档更有用。

数据流变量引用的典型示例是电子表格,其中每个变量都是电子表格中的一个单元格,由其他单元格的值定义。当一个单元格发生变化时,这些变化会按照依赖顺序向前传播。不过,数据流变量本身有些有限——我认为数据流是这个想法变得更有趣的地方。

在某种意义上,轻量级处理节点调度在一组(通常较小的)固定线程上的想法,每个线程都由类似队列的流连接,在非常高的级别上描述了所有{数据流流、参与者、CSP}。目标是在所有情况下通过保持有工作要做的节点而不在没有工作的节点上浪费周期来保持高吞吐量,并且避免用户管理显式线程和锁(通过它们之间的队列/流/通道解耦)。

于 2010-12-30T20:04:12.767 回答