Callable Future FutureTask

Callable接口只有一个call方法

Future接口有get等方法

FutureTask类实现了RunnableFuture接口

RunnableFuture接口继承了Runnable和Future

总之:Runnable可以想象成一个没有参数和返回值的异步方法,Callable与Runnable类似,但是有返回值。

    public static void main(String[] args) throws InterruptedException, ExecutionException {
    
    
        Callable<Integer> task = new Callable<Integer>() {
    
    
            @Override
            public Integer call() throws Exception {
    
    
                return 1;
            }
        };
        FutureTask<Integer> futureTask = new FutureTask<>(task);
        Thread t = new Thread(futureTask);
        t.start();
        for (int i = 0; i < 10; i++) {
    
    
            System.out.println("main thread " + i);
        }
        Integer result = futureTask.get();
        System.out.println("异步结果 "+result);
    }

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Mason97/article/details/108680995