美文网首页
多线程Future模型学习笔记

多线程Future模型学习笔记

作者: lilac_163 | 来源:发表于2018-11-04 15:52 被阅读0次

    为什么要使用Future?

    这个要从Runnable接口说起。

    Runnable接口

    runnable接口里只有一个抽象方法,run方法返回类型是void,无法得到执行后的结果。

    但在实际开发中如果想要获取最终的结果时Runnable接口就不适合了,那么获取结果怎么实现呢?Callable类可以有返回值。

    Future是对具体的runnable和callable任务的结果进行查询、取消、是否完成、获取结果。它的get方法通过阻塞进程获取返回结果。

    Future接口的方法

    如何使用Future接口呢?

    ExecutorService接口中有3个方法,可以将callable,runnable,future联系起来。

    请下看面的例子:

    demo

    Future是个接口,无法创建对象,那么就有了FutureTask类。它实现了Future和Runnable接口。简单的总结,它可以使用

    new Thread(Runnable b) 放在一个新的线程中执行,也可以使用executorService.submit(Runnable b)放在线程池中执行,两种方式都可以得到返回值。

    FutureTask的2个构造方法

    具体使用的例子:

    FutureTask例子

    相关文章

      网友评论

          本文标题:多线程Future模型学习笔记

          本文链接:https://www.haomeiwen.com/subject/bzjrxqtx.html