package com.example.core.future;public class Main {public static void main(String[] args) {FutureClient fc = new FutureClient();Data data = fc.request("請求參數");//異步執行System.out.println("做其他的相關業務操作");String rst = data.getRequest();//這才是真正的獲取實際數據的方法System.out.println("---"+rst);}
}
/*
做其他的相關業務操作
根據查詢參數:請求參數進行查詢數據庫操作這可能需要5秒左右的時間
---100條數據*/
Data抽象層?
package com.example.core.future;public interface Data {String getRequest();
}
FutureClient.java
package com.example.core.future;public class FutureClient {public Data request(final String queryStr){FutureData futureData = new FutureData();//異步的起一個線程去進行相應的處理操作new Thread(new Runnable() {@Overridepublic void run() {//需要把請求的參數 設置到真實數據的處理對象中去RealData realData = new RealData(queryStr);//真實請求處理完成之后,我們需要進行設置,將結果給包裝對象futureData.setRealData(realData);}}).start();;return futureData;}
}