可能还有其他方法可以做我将在这里使用的例子,但这不是我的问题。
我这样做:
(future (clojure.java.shell/sh "sleep" "3" :dir "/tmp"))
启动对shell脚本的异步调用。 ("sleep 3"
当然也只是一个例子。)
我想知道(future...)
是否被调用,是否保证在某个时刻线程将开始并执行未来的内容?
或者只有在尝试取消引用未来时才能保证这一点吗?
(我知道,一旦你试图取消引用它总是会开始 的未来不会非常有用,但这不是我的问题:我想知道的是它是否是保证未来,即使没有对未来进行解除引用,也可以保证从一个点开始[考虑到程序仍在运行])
答案 0 :(得分:1)
保证将未来发送到ExecutorService(到clojure.lang.Agent/soloExecutor)
即使您不尝试取消引用它,也可以保证发送它(future-call source)。