2012-06-03 3 views
2

В настоящее время я изучаю библиотеку GPars (Groovy Parallel System), и я столкнулся с переменными DataFlow. В документации указано, что переменные потока данных могут быть назначены только один раз. Однако я не мог найти причины для этого ограничения.Почему переменные DataFlow могут быть назначены только один раз

Может ли кто-нибудь сказать мне, почему переменные потока данных в GPars назначаются только один раз?

ответ

2

В переменных программирования потока данных есть однократная запись, и они синхронизируют код, который использует (потребляет) их значение - именно этот поток данных управляет выполнением.

Хорошая книга о программировании в общем и параллельном потоке данных в частности - Concepts, Techniques, and Models of Computer Programming, где вы можете узнать больше о том, как будут использоваться переменные синхронизации потока данных (используя язык Oz).

С другой стороны, если вы могли бы назначить несколько значений переменной, то каждый раз, когда это значение было записано, его потребители должны быть уведомлены - это больше похоже на передачу сообщений.

0

Поскольку DataflowVariable никогда не может изменить его значение, на нем не может быть никаких условий гонки. Вы даже можете делать неблокирующие записи и, таким образом, быть очень эффективными и беззаконными по дизайну. После первоначального присваивания вы можете даже делать неблокирующие чтения.

Смежные вопросы