2012-06-03 29 views
2

我正在探索GPars(Groovy并行系统)库,并且我遇到了DataFlow变量。该文档说数据流变量只能分配一次。但是我找不到这个限制的理由。为什么DataFlow变量只能分配一次

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

回答

2

在数据流编程变量是一次写入,这是他们如何同步使用(消耗),其值的代码 - 这是这个流数据的指导执行。

关于一般编程和数据流并发的一本很好的书是Concepts, Techniques, and Models of Computer Programming,您可以在这里更多地了解数据流同步变量的使用方式(使用Oz语言)。

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

0

由于DataflowVariable永远无法改变它的值,你不能有任何的竞争条件。你甚至可以做非阻塞写操作,因此通过设计非常高效且无死锁。初始分配后,您甚至可以进行非阻塞式读取。

相关问题