很难确切地说你的问题是什么,但我猜你希望在未来执行在指定时间未完成时停止。
当然,.get 并不执行这个操作,.get 的超时是对等待未来操作结果的超时,而不是对未来的超时。
你可以将 .get 与超时和未来取消结合使用,可能会得到类似的效果,但即使未来取消也不能保证停止运行的线程。并且 JVM 的作者们一直在移除不合作停止运行线程的方式。
最好的方法是将正在运行的进程编写成可以与其关闭方式配合,例如等待某些关闭信号或达到一定时间限制后停止执行。这需要在进程之间进行相当多的通信,有时还需要进程能够同时等待多个线程。core.async 为此提供了一些很好的原始工具。