FutureTask 有future与Runnable的特征 (实现interface)
线程池execute(Runnable) 返回 Future<> future , 可以通过 future.get( ) 获取结果
也可以把FutureTask 提交到线程池执行,然后直接task.get( )
public class FutureTaskDemo { public static void main(String[] args) { Task task = new Task(); FutureTask<Integer> integerFutureTask = new FutureTask<>(task); new Thread(integerFutureTask).start(); try { System.out.println("task运行结果:"+integerFutureTask.get()); } catch (InterruptedException e) { e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); } } } class Task implements Callable<Integer> { @Override public Integer call() throws Exception { System.out.println("子线程正在计算"); int sum = 0; for (int i = 0; i < 100; i++) { sum += i; } return sum; } }