Ich denke, es ist sehr hilfreich, andere Informationen über die Programmierung von Datenflüssen zu lesen. Imho, die Groovy GPars Jungs haben einige der besten Dokumente auf Datenfluss . Die GPars Mailinglisten haben in der Vergangenheit viele Diskussionen über Datenfluss gegen CSP gegen Schauspieler usw. geführt und sind ein großartiger Ort, um Fragen zu stellen.
Einige andere nützliche Links:
Die Clojure impl ist ziemlich nackt und baut im Grunde genommen Datenflussvariablen auf Refs auf und beobachten Sie Funktionen auf diesen Referenzen. Möglicherweise finden Sie den tatsächlichen Code oder die Tests nützlicher als die Dokumente.
Das kanonische Beispiel, das mit Datenflussvariablen zitiert wird, ist das einer Kalkulationstabelle, bei der jede Variable eine Zelle in der Kalkulationstabelle ist, die durch die Werte von anderen Zellen definiert wird. Wenn sich eine Zelle ändert, werden die Änderungen in Abhängigkeitsreihenfolge vorwärts gewandt. Dataflow-Variablen selbst sind jedoch etwas eingeschränkt - ich denke, Datenflüsse sind dort, wo die Idee interessanter wird.
In gewissem Sinne beschreibt die Idee von leichtgewichtigen Verarbeitungsknoten, die über einen (normalerweise kleineren) Satz fester Threads geplant sind, die jeweils durch Warteschlangen-ähnliche Ströme verbunden sind, alle {Datenflüsse, Akteure, CSP} auf einer sehr hohen Ebene. Das Ziel besteht in allen Fällen darin, einen hohen Durchsatz aufrechtzuerhalten, indem Knoten, die Arbeit haben, arbeiten und keine Zyklen auf Knoten ohne UND verworfen werden, um zu vermeiden, dass Benutzer explizite Threads und Sperren verwalten (entkoppelt über die Warteschlangen / Ströme / Kanäle dazwischen) ).
Tags und Links clojure concurrency dataflow