1. 程式人生 > >客戶端,服務端同步非同步

客戶端,服務端同步非同步

服務端非同步好處:解放執行緒:不用一個請求就佔一個執行緒直到請求處理完成。合併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