FutureTask实现了Runnable和Future接口,是一个可取消的异步任务。利用开始和取消计算的方法、查询计算是否完成的方法和获取计算结果的方法,此类提供了对 Future 的基本实现。仅在计算完成时才能获取结果;如果计算尚未完成,则阻塞 get 方法。一旦计算完成,就不能再重新开始或取消计算。更重要的是实现了一个任务完成的回调方法。这个挺好。
@Test public void test2() { MyFutureTask task=new MyFutureTask(new Callable<String>() { @Override public String call() throws Exception { return "gaoxing"; } }); new Thread(task).start(); } } class MyFutureTask extends FutureTask { public MyFutureTask(Callable arg0) { super(arg0); } protected void done(){ try { System.out.println(this.get()); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ExecutionException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
时间: 2024-10-13 12:06:44