2

这些天我正在探索 GPars(Groovy 并行系统)库,我遇到了 DataFlow 变量。文档说数据流变量只能分配一次。但是我找不到这个限制的原因。

有人能告诉我为什么 GPars 中的数据流变量只分配一次吗?

4

2 回答 2

2

在数据流编程中,变量是一次性写入的,这就是它们同步使用(消耗)其值的代码的方式——正是这种数据流指导执行。

一本关于一般编程和特别是数据流并发的好书是计算机编程的概念、技术和模型,您可以在其中了解更多关于数据流同步变量的使用方式(使用 Oz 语言)。

另一方面,如果你可以为一个变量分配多个值,那么每次写入值时,都应该通知它的消费者——这听起来更像是消息传递。

于 2012-06-03T17:25:44.683 回答
0

由于 DataflowVariable 永远无法更改它的值,因此您不能在其上设置任何竞争条件。您甚至可以进行非阻塞写入,因此设计上非常高效且无死锁。在初始分配之后,您甚至可以进行非阻塞读取。

于 2013-09-15T16:39:13.467 回答