Java FutureTask正确使用姿势

FutureTask主要用于实现Future模式。Future模式是一种并行模式,主要思想:将耗时任务提交给后台去做,期间去做其他事,等到真正需要耗时任务的结果时调用FutureTask的get()函数获取结果。说白了就是:你让其他人帮你去订票,自己先去忙别的,等到你需要票的时候找那个人要。


实现Future模式首先需要继承Callable<>,先把任务定好

public class MyTask implements Callable{

    public MyTask(){}
    @Override
    public String call(){
         //耗时任务
         return "";
    }
}

发布任务,并获取任务执行结果:

public class Main{
   public static void main(String[] args){
             FutureTask future = new FutureTask(new MyTask());
             //开启线程池
             ExecutorService executor = Executors.newFixedThreadPool(1);
             //把任务交给别人
             executor.submit(future);
             //然后,我们就可以去干别的事了
             //不要在这里傻等啊
             
             //获取任务结果
             System.out.println(future.get());
   }
}


你可能感兴趣的:(java)