Следует ли считывать несколько ссылок Clojure в транзакции для согласованности?

Это теоретический вопрос, мотивированный моим желанием лучше понять параллелизм Clojure.

Допустим, я пишу boids. Предположим, что каждый боид — это отдельная зеленая нить, изменяющая позиции в векторе или ссылках, представляющих мировую сетку. Вспомните муравьиную колонию Хики.

Теперь документация на Clojure.org гласит: «Все чтения ссылок будут видеть непротиворечивый снимок« мира ссылок »от начальной точки транзакции (ее« точки чтения »)».

Означает ли это, что я могу получить непротиворечивый снимок моей симуляции, например, чтобы нарисовать ее, прочитав мой вектор ссылок в транзакции (, то есть в контексте dosync?)

Спасибо!

6
задан Thomas Heywood 16 August 2012 в 10:47
поделиться