Future 模式
类似于ajax请求 页面异步的进行后台请求
用户无需等待请求的结果 就可以继续浏览或者操作
核心就是:去除了主函数的等待时间,并使得原本需要等待的时间段可以用于处理其他业务逻辑
JDK内置实现Future模式演示一下
public class RealData implements Callable<String> {String res = null;@Overridepublic String call() throws Exception {Thread.sleep(5000); // 模拟处理数据的过程 并将结果放在res里面res = "result";return res;}public static void main(String[] args) {FutureTask<String> futureTask = new FutureTask<String>(new RealData()); ExecutorService executor = Executors.newFixedThreadPool(1); executor.submit(futureTask); //这里使用sleep 模拟 真实业务try {Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();} try {System.out.println("res= " + futureTask.get()); //如果call()没有执行完成 get依然会等待 } catch (Exception e) {e.printStackTrace();} }
}