【发布时间】:2017-05-08 07:25:57
【问题描述】:
根据我在某处读到的内容,如果您将新值绑定到 Clojure 中的动态 var,则该新值仅在该线程中可用。
所以,为了测试,我创建了以下代码:
(def *dynamic-var* "dynamic var")
(defn run-it []
(future (binding [*dynamic-var* "new-value"] (Thread/sleep 3000) (println *dynamic-var*)))
(future (Thread/sleep 1000) (println *dynamic-var*)))
我的问题是:为什么第一个线程(必须打印“新值”)从不运行?它从不将“新值”打印到控制台。
【问题讨论】:
标签: multithreading clojure dynamic-variables