Я думаю, что наиболее полезно прочитать другую информацию о том, что такое программирование потока данных. Имхо, ребята из Groovy GPars имеют одни из лучших документов по потоку данных . В прошлом списки рассылки GPars много обсуждали поток данных против CSP, актеров и т. Д., И это отличное место, чтобы задавать вопросы.
Некоторые другие полезные ссылки:
Clojure impl довольно прост, в основном создавая переменные потока данных поверх ссылок и следя за функциями на этих ссылках. Вы можете найти код или тесты более полезными, чем документы.
Канонический пример, приведенный с переменными потока данных, - это таблица, где каждая переменная является ячейкой в таблице, определяемой значениями из других ячеек. Когда одна ячейка изменяется, изменения пульсируют вперед в порядке зависимости. Сами переменные потока данных несколько ограничены - я думаю, что потоки потока данных - вот где идея становится более интересной.
В некотором смысле идея облегченных узлов обработки, запланированных для (обычно меньшего) набора фиксированных потоков, каждый из которых связан с потоками, подобными очереди, описывает на очень высоком уровне все {потоки данных, акторы, CSP}. Во всех случаях цель состоит в том, чтобы поддерживать высокую пропускную способность, сохраняя узлы, у которых есть работа, чтобы работать, а не тратить циклы на узлы, которые не И, чтобы избежать пользователей, управляющих явными потоками и блокировками (отделенными через очереди / потоки / каналы между ними ).