学堂 学堂 学堂公众号手机端

FutureTask是Java的一个类,用于表示一个可能会产生结果的异步任务。它可以用于多线程编程,通常与ExecutorService一起使用。 使用FutureTask的一般步骤如下

lewis 1年前 (2024-04-19) 阅读数 11 #技术

FutureTask是Java的一个类,用于表示一个可能会产生结果的异步任务。它可以用于多线程编程,通常与ExecutorService一起使用。

使用FutureTask的一般步骤如下:

  1. 创建一个Callable对象,实现call()方法来执行需要异步执行的任务。call()方法的返回值类型应与FutureTask的泛型类型一致。
Callable<Integer>callable=newCallable<Integer>(){ @Override publicIntegercall()throwsException{ //执行异步任务 return42; } };
  • 创建一个FutureTask对象,将Callable对象作为参数传入。
  • FutureTask<Integer>futureTask=newFutureTask<>(callable);
  • 创建一个线程池,将FutureTask对象提交给线程池执行。
  • ExecutorServiceexecutor=Executors.newFixedThreadPool(1); executor.submit(futureTask);
  • 可以通过FutureTask的get()方法获取异步任务的结果。如果任务还没有完成,get()方法会阻塞当前线程直到任务完成。
  • try{ Integerresult=futureTask.get(); System.out.println("异步任务的结果是:"+result); }catch(InterruptedExceptione){ e.printStackTrace(); }catch(ExecutionExceptione){ e.printStackTrace(); }

    通过以上步骤,就可以使用FutureTask来执行异步任务并获取结果。


    版权声明

    本文仅代表作者观点,不代表博信信息网立场。

    热门