在Rich Hickey Code here中,他将他的Clojure Ants代码包含在sync
函数中(当人们习惯性地期望dosync
时)。
当我们查看doco for sync here时,我们会看到
与dosync相同,但允许额外选项(目前不支持)。可能最好在目前使用dosync。
我的问题是 - dosync运算符的额外事务标志是什么(甚至是可能的)?它是否像数据库事务隔离级别一样,你有不同的设置,如read-committed等。
答案 0 :(得分:1)
没有可能的标志会产生任何影响。 sync
的宏声明是:
(defmacro sync
[flags-ignored-for-now & body]
`(. clojure.lang.LockingTransaction
(runInTransaction (fn [] ~@body))))
所以你可以放任何你想要的东西;-)这用于蚂蚁演示,因为当编写该演示语言时,语言正在发展,并且认为需要一些标志,结果证明不是案件。