我正在探索GPars(Groovy並行系統)庫,並且我遇到了DataFlow變量。該文檔說數據流變量只能分配一次。但是我找不到這個限制的理由。爲什麼DataFlow變量只能分配一次
有人可以告訴我爲什麼GPars中的數據流變量只能分配一次嗎?
我正在探索GPars(Groovy並行系統)庫,並且我遇到了DataFlow變量。該文檔說數據流變量只能分配一次。但是我找不到這個限制的理由。爲什麼DataFlow變量只能分配一次
有人可以告訴我爲什麼GPars中的數據流變量只能分配一次嗎?
在數據流編程變量是一次寫入,這是他們如何同步使用(消耗),其值的代碼 - 這是這個流數據的指導執行。
關於一般編程和數據流併發的一本很好的書是Concepts, Techniques, and Models of Computer Programming,您可以在這裏更多地瞭解數據流同步變量的使用方式(使用Oz語言)。
在另一方面,如果你可以分配多個值給一個變量,那麼每個值被寫入時,它的消費者應通知 - 這聽起來更像是消息傳遞。
由於DataflowVariable永遠無法改變它的值,你不能有任何的競爭條件。你甚至可以做非阻塞寫操作,因此通過設計非常高效且無死鎖。初始分配後,您甚至可以進行非阻塞式讀取。