clojure.lang.RT线程安全?

clojure.lang.RT线程安全?,clojure,Clojure,我正在使用clojure.lang.RT(使用clojure-1.4.0.jar)在运行时评估应用程序最终用户提供的许多脚本,包括: return (Boolean) RT.var("clojure.core", "eval").invoke(RT.var("clojure.core", "read-string").invoke(script)) 。。。以及: IFn fn = (IFn) RT.var("clojure.core", "eval").invoke(RT.var("cloju

我正在使用clojure.lang.RT(使用clojure-1.4.0.jar)在运行时评估应用程序最终用户提供的许多脚本,包括:

return (Boolean) RT.var("clojure.core", "eval").invoke(RT.var("clojure.core", "read-string").invoke(script))
。。。以及:

IFn fn = (IFn) RT.var("clojure.core", "eval").invoke(RT.var("clojure.core", "read-string").invoke(script))

鉴于var方法是静态的,我是否可以假设clojure.lang.RTAPI的上述使用是线程安全的?

对RT.var的调用与您调用的脚本一样是线程安全的。如果运行两个脚本,每个脚本都通过调用
def
defn
更改了某个变量,那么这两个脚本可能会得到变量内容的相互不一致的视图。但总的来说,这很可能是安全的

对RT.var的调用与您正在调用的脚本一样是线程安全的。如果运行两个脚本,每个脚本都通过调用
def
defn
更改了某个变量,那么这两个脚本可能会得到变量内容的相互不一致的视图。但总的来说,这很可能是安全的