很难确切地知道你的问题是什么,但据我猜测,你可能希望如果过程在某个特定时间内未完成,则停止将来的执行。
当然,.get 并不支持这种操作,.get 的超时是对等待将来的结果的操作的超时,而不是对将来的超时。
你可以将 .get 与超时和 future-cancel 配对,以获得类似的结果,但即使 future-cancel 也无法保证停止运行的线程。而 JVM 作者一直在移除停止正在运行的线程的方法。
最好的方法是将正在运行的过程写为与关闭方式合作,等待一些关闭信号或达到一定时间限制后停止执行。这需要在进程之间进行大量的通信,有时需要进程能够同时等待多个线程(等待来自另一个进程的消息以及等待停止信号)。core.async 为此提供了一些很好的基本工具。