Может кто-нибудь объяснить, почему и как я буду использовать API-интерфейс программирования Clojure Dataflow, поскольку я не могу найти много информации об этом в Интернете.
Использование идиом программирования Clojure DataFlow
Ответы (1)
Я думаю, что очень полезно прочитать другую информацию о том, что такое программирование потока данных. Имхо, ребята из Groovy GPars имеют одни из лучших документов на поток данных. В списках рассылки GPars в прошлом было много дискуссий о потоках данных, CSP, акторах и т. д., и это отличное место, где можно задать вопросы.
Некоторые другие полезные ссылки:
- Параллелизм потоков данных в Groovy — Вацлав Печ (GPars)
- Поток данных — Вацлав Пех (GPars)
- Выбрать поток данных — Вацлав Печ (GPars)
- пример из статьи GPars — Алекс Миллер
- Презентация – Джонас Бонер (Akka/Scala)
- Википедия, конечно
Clojure impl довольно прост, в основном создавая переменные потока данных поверх ссылок и функций наблюдения. на этих реф. Вы можете найти настоящий код или тесты полезнее, чем документы.
Канонический пример, приведенный с переменными потока данных, — это электронная таблица, где каждая переменная — это ячейка в электронной таблице, определяемая значениями из других ячеек. Когда изменяется одна ячейка, изменения распространяются в порядке зависимости. Однако сами переменные потока данных несколько ограничены — я думаю, что потоки потока данных — это то, где идея становится более интересной.
В некотором смысле идея облегченных узлов обработки, запланированных для (обычно меньшего) набора фиксированных потоков, каждый из которых связан потоками, подобными очередям, описывает на очень высоком уровне все {потоки потока данных, акторы, CSP}. Во всех случаях цель состоит в том, чтобы поддерживать высокую пропускную способность, сохраняя узлы, которые должны выполнять работу, и не тратя циклы на узлы, которые этого не делают, И избегая пользователей, управляющих явными потоками и блокировками (развязанными через очереди/потоки/каналы между ними). ).