我需要从Java向RESTful服务器发出Web请求。我想让我的Java代码异步处理响应。我正在寻找一个处理请求的线程和回调的框架。
顺便说一句,我看了一下FutureTask,它似乎并不是我需要的,因为它要求客户端在某个时候等待它完成。我正在寻找完成后的回调。
答案 0 :(得分:3)
顺便说一下,我看了一下FutureTask,它似乎不是我需要的,因为它要求客户端在某个时候等待它完成。
您不必从发起线程调用FutureTask.get()以获取任务的结果。您可以将Callable
传递给FutureTask
,同时将其输出传递给其他组件。有get()
方法,以便您可以获得异步计算的结果,这可能涉及等待计算完成(如果尚未完成)。
如果你更喜欢回调样式,你可以简单地让Callable调用你自己构造的回调或者自己处理结果。
答案 1 :(得分:1)
使用Observer Pattern
可以在java中轻松解决这个问题Observable
并实现Runnable
Observer
,向新类注册为观察者答案 2 :(得分:0)
在GitHub上查看ning async http客户端项目。它为您提供了使用Future的选项,或者为请求完成时定义回调: