Syntax sync和dosync之间的区别-需要哪些额外的事务标志?

Syntax sync和dosync之间的区别-需要哪些额外的事务标志?,syntax,clojure,transactions,Syntax,Clojure,Transactions,在丰富的Hickey代码中,他将Clojure Ants代码封装在一个sync函数中(人们习惯性地期望dosync) 当我们看这个世界时,我们看到 与dosync相同,但允许额外的选项(当前不支持)。目前最好使用dosync 我的问题是-dosync操作符的额外事务标志是什么(甚至可能是什么?是否类似于数据库事务隔离级别,其中有不同的设置,如read committed等。没有可能产生任何影响的标志。sync的宏声明为: (defmacro sync [flags-ignored-fo

在丰富的Hickey代码中,他将Clojure Ants代码封装在一个sync函数中(人们习惯性地期望dosync

当我们看这个世界时,我们看到

与dosync相同,但允许额外的选项(当前不支持)。目前最好使用dosync


我的问题是-dosync操作符的额外事务标志是什么(甚至可能是什么?是否类似于数据库事务隔离级别,其中有不同的设置,如read committed等。

没有可能产生任何影响的标志。
sync
的宏声明为:

 (defmacro sync 
   [flags-ignored-for-now & body]
   `(. clojure.lang.LockingTransaction
       (runInTransaction (fn [] ~@body)))) 

所以你可以把你想要的任何东西放在那里;-)这是在ants演示中使用的,因为在编写该演示时,语言正在发展,人们认为需要一些标志,但事实并非如此

代码示例应该是实际的Clojure代码-请不要胡说八道,尽管它在编辑器中看起来很好。哎呀,我完全同意。固定的。