zoukankan      html  css  js  c++  java
  • JDK中的Future模式

    RealDataJDK类:

    public class RealDataJDK implements Callable<String> {
    	protected String data;
    
    	public RealDataJDK(String data) {
    		this.data = data;
    	}
    
    	@Override
    	public String call() throws Exception {
    		//利用sleep方法来表示真是业务是非常缓慢的
    		try {
    			System.out.println("kaishi 耗时处理");
    			Thread.sleep(1000);
    			System.out.println("kaishi 耗时处理完成");
    		} catch (InterruptedException e) {
    			e.printStackTrace();
    		}
    		return data;
    	}
    }
    

    Application

    public class Application {
    	public static void main(String[] args) throws Exception {
    		FutureTask<String> futureTask = 
    				new FutureTask<String>(new RealDataJDK("name"));
    		ExecutorService executor = 
    				Executors.newFixedThreadPool(1); //使用线程池
    		//执行FutureTask,相当于上例中的client.request("name")发送请求
    		executor.submit(futureTask);
    		//这里可以用一个sleep代替对其他业务逻辑的处理
    		//在处理这些业务逻辑过程中,RealData也正在创建,从而充分了利用等待时间
    		System.out.println("处理自己的事情");
    		Thread.sleep(500);
    		System.out.println("处理自己的事情完成");
    		//使用真实数据
    		//如果call()没有执行完成依然会等待
    		System.out.println("数据=" + futureTask.get());
    		executor.shutdown();
    	}
    }
    

      

  • 相关阅读:
    AT2364 Colorful Balls
    SP5973 SELTEAM
    codeforces469B
    校内题目T2691 桶哥的问题——送桶
    关于一种6的倍数判定素数的方法
    P1903 奖学金题解
    说说关于洛谷P4779迪杰斯特拉的堆优化
    清北学堂北京大学文宏宇神仙讲课day7
    CF961F k-substrings
    CF985F Isomorphic Strings
  • 原文地址:https://www.cnblogs.com/sg9527/p/8125299.html
Copyright © 2011-2022 走看看