Clojure的未来承诺依赖于我

Tor*_*ørn 6 concurrency clojure

当我运行以下代码时,它基本上按照我的意图运行,除了它在未来完成后挂起.我错过了什么 - 某种"密切的代理人/线程"电话?我该怎么做?

(def name-to-greet (promise))

(future
    (println "Hello," @name-to-greet))

(print "What is your name? ")
(flush)
(deliver name-to-greet (read-line))
Run Code Online (Sandbox Code Playgroud)

Ale*_*ler 7

Futures使用代理程序线程池,它使用非守护程序线程,这意味着在您调用(shutdown-agents)之前Clojure不会关闭.imho,这是假的(请参阅我在这里的评论),我已经提出Rich的建议,他会考虑在1.2之后.