阅读量:5
FutureTask是Java的一个类,用于表示一个可能会产生结果的异步任务。它可以用于多线程编程,通常与ExecutorService一起使用。
使用FutureTask的一般步骤如下:
- 创建一个Callable对象,实现call()方法来执行需要异步执行的任务。call()方法的返回值类型应与FutureTask的泛型类型一致。
Callable<Integer> callable = new Callable<Integer>() { @Override public Integer call() throws Exception { // 执行异步任务 return 42; } };
- 创建一个FutureTask对象,将Callable对象作为参数传入。
FutureTask<Integer> futureTask = new FutureTask<>(callable);
- 创建一个线程池,将FutureTask对象提交给线程池执行。
ExecutorService executor = Executors.newFixedThreadPool(1); executor.submit(futureTask);
- 可以通过FutureTask的get()方法获取异步任务的结果。如果任务还没有完成,get()方法会阻塞当前线程直到任务完成。
try { Integer result = futureTask.get(); System.out.println("异步任务的结果是:" + result); } catch (InterruptedException e) { e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); }
通过以上步骤,就可以使用FutureTask来执行异步任务并获取结果。