服务端异步好处:解放线程:不用一个请求就占一个线程直到请求处理完成。合并IO:batch insert,几个消息一起落地。
客户端同步服务端异步。
Future<Result> future = request(server);//server立刻返回future
synchronized(future){
while(!future.isDone()){
future.wait();//server处理结束后会notify这个future,并修改isdone标志
}
}
return future.get();
客户端同步服务端同步。
Result result = request(server);
客户端异步服务端同步(这里用线程池的方式)。
Future<Result> future = executor.submit(new Callable(){public void call<Result>(){
result = request(server);
}})
return future;
客户端异步服务端异步。
Future<Result> future = request(server);//server立刻返回future
return future