Callable与FutureTask

Callable

  1. 实现多线程的方法

    1. 继承thread类
    2. 实现runnable接口
    3. 实现callable接口
    4. java的线程池获得
  2. callable与runnable的区别

    class MyThread implements Runnable{
        @Override
        public void run() {
    
        }
    }
    
    class MyThread2 implements Callable<Integer>{
        @Override
        public Integer call() throws Exception {
            return null;
        }
    }
    
    1. 实现方法不一样,不能直接替换Runnable接口
    2. 是否有返回值,callable有泛型
    3. 但是两个都是函数式接口
  3. Callable接口如何使用

    1. 通过runnable与callable共同的实现类搭建桥梁,来使用callable接口(FutureTask)
  4. FutureTask未来任务

    1. 并行计算,将复杂的任务提出去并行运行,简单任务串行
    2. get要放在主线流程结束时调用,防止提前阻塞
    3. 一个FutureTask对象只会计算一次,想要多次计算可以新建多个FutureTask对象
    4. 使用lamda表达式来建立线程,更加简洁
上一篇:2021-07-22


下一篇:Callable实现线程