http服务中如何将底层异步得到的结果同步返回?

SpringMVC开发的一个http服务,要求同步返回结果,但是底层调用的是socket的服务异步返回结果,如何实现在这个请求的controller方法中等待底层异步执行完成再返回响应?

我想理论上可以通过一个中间结构存放执行结果,在controller中调用完指令之后循环查询执行结果再返回。对线程这些不熟悉,不知道有没有比较可靠的办法?

可以用 阻塞socket
或者:

 while ( connect (........) == -1 )
          ................