顺便说一下,我看了一下FutureTask,它似乎不是我所需要的,因为它要求客户端在某个时候等待它完成。
你不 必须
为了得到任务的结果调用FutureTask.get()从发起线程。您可以只将
Callable传递给的
FutureTask处理传递给其他组件。这些
get()方法在那里,您可以获取异步计算的结果,这可能需要等待异步计算完成(如果尚未完成)。
如果您希望使用回调样式,则可以简单地让Callable调用您自己构造的回调或自行处理结果。

顺便说一下,我看了一下FutureTask,它似乎不是我所需要的,因为它要求客户端在某个时候等待它完成。
你不 必须
为了得到任务的结果调用FutureTask.get()从发起线程。您可以只将
Callable传递给的
FutureTask处理传递给其他组件。这些
get()方法在那里,您可以获取异步计算的结果,这可能需要等待异步计算完成(如果尚未完成)。
如果您希望使用回调样式,则可以简单地让Callable调用您自己构造的回调或自行处理结果。