2012-08-16 44 views
5

這是一個理想的問題,因爲我希望更好地理解Clojure的併發性。應該在事務中讀取多個Clojure參考以保持一致性?

假設我在寫boids。假設每個boid都是一個單獨的綠色線程,在向量中變換位置或代表世界網格。想想Hickey的螞蟻殖民地。

現在,Clojure.org上的文檔聲明:「所有參考文獻的內容都將從交易的起點(其」讀取點「)看到'參考世界'的一致快照。」

這是否意味着我只能得到我的模擬的一致快照,例如繪製,通過讀取事務中我裁判的載體(即一個dosync範圍內?)

謝謝!

回答

6

如果需要一致的快照,則需要事務。

如果您閱讀交易之外的參考文獻,那麼在您閱讀每一個參考文獻時您將獲得一個瞬時值。您無法保證其他交易不會改變您閱讀之間的一個或多個參考文獻,因此您最終可能會得到不一致的觀點。

相關問題