唐僧喜欢小龙女

导航

FutureTask和Callable学习

1、我的理解

        /**
         *
         *  一、什么叫未来任务FutureTask
         *      定义:从字面上理解未来要执行的任务,未来需要通过手动的方式去取结果。
         *      举例:老师上课的时候突然渴了,让班长买水,老师要喝的时候去取.
         *  二、和回调函数的区别
         *      回调函数会主动的通知结果,未来任务不是,需要主动的去取
         *
         *  三、Callable和Runable的区别
         *      callable 接口有返回值
         *      callable 接口的方法会抛异常
         *
         *  四、FutureTask 理解
         *      FutureTask 继承Runnable接口、构造器里面需要传一个Callable 接口。
         *
         *  五、创建线程的方式
         *      1、继承Thread 类、2、实现Runable 接口、3、实现callable接口 4、线程池
         *      无论实现Runable 接口还是实现callable接口 都需要借助Thread类
         *
         *
         */

2、代理举例

       // 构造一个异步执行的对象,构造参数是callable 接口
        FutureTask<String> futureTask1 = new FutureTask<String>(()->{
            System.out.println(Thread.currentThread().getName()+"come in callable");
            return "gaohq";
        });



        new Thread(futureTask1,"lucy").start();

        while (!futureTask1.isDone()){
            System.out.println("wait.....");
        }


        System.out.println(futureTask1.get());
        System.out.println("\n");
        System.out.println(futureTask1.get());

 

posted on 2021-10-06 17:10  与时具进&不忘初心  阅读(87)  评论(0编辑  收藏  举报