zoukankan      html  css  js  c++  java
  • Future和Callable

    Thread类继承自Runnable接口。

    上面是java中的两个线程接口类。

    ---------

    Executor任务框架就是上面那一坨。

    这个是顶层接口。

    这个是强化了子类接口,一般我们指得异步任务框架接口指得就是上面的接口。

    这个是为延迟执行任务设计的延迟任务框架,看他继承的父类和实现的接口可以看出,他额外实现了ScheduledExecutorService接口,这个接口就是定义了延迟执行方法。

    ThreadFactory继承自AbstractExecutorService,而AbstractExecutorService实现了ExecutorService。

     从它的构造函数是否可以看出,它在构建线程池。

    上面是异步任务框架的工具类。

    再回归到Executor接口上,可以看到每个调用方法都可以返回Future对象。

    根据方法结构和描述,可以看出Future接口提供了这两个功能:可取消,阻塞获取异步任务执行结果。
    Future接口的一种子类接口RunnableFuture(可执行取消的任务接口),它的run方法,注释提到这个方法是设置结果到result中。

    此接口的一个实现类FutureTask类的run方法:
    可以看到run方法提到了callable的call方法,并将获得结果设置到返回结果中,因为Executors中有很多可以将runnable接口转换为Callable接口的方法,因此Future可取消的异步任务执行需要callable接口作为基础接口。
    下面是FutureTask实现的run方法。

  • 相关阅读:
    矩阵按键转化为普通单个按键
    表达式位长 对结果的影响
    LuoguP3674 小清新人渣的本愿 && BZOJ4810: [Ynoi2017]由乃的玉米田
    BZOJ2956: 模积和
    NOIP2016 天天爱跑步
    LuoguP3948 数据结构
    AT2442 フェーン現象 (Foehn Phenomena)
    博客园美化笔记
    BZOJ2242: [SDOI2011]计算器
    分块入门与分块的经典应用
  • 原文地址:https://www.cnblogs.com/YsirSun/p/15689910.html
Copyright © 2011-2022 走看看