很难确切知道您的问题是什么,但我猜您希望如果未来执行没有在特定时间内完成,就停止执行。
当然,.get 不能这样做,.get 的超时是对等待未来结果的操作的超时,而不是对未来本身的超时。
您可以将 .get 与超时和未来取消结合起来,也许能得到类似的结果,但是即使未来取消也不能保证停止正在运行的线程。而且 JVM 作者一直在移除停止正在运行的线程的方法。
最好的方法是将正在运行的过程编写成能够与关闭合作,例如等待某些关闭信号,或者达到某个时间限制后停止执行。这需要在进程之间进行大量通信,有时还要求进程能够同时等待多个线程(等待来自另一个进程的消息,同时也等待停止信号)。core.async 为此提供了一些功能强大的原语。