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;

    }

}

 

posted on 2025-01-02 15:24  towboat  阅读(26)  评论(0)    收藏  举报