• Excutor框架


      从jdk5开始,把工作单元和执行机制分离开来。工作单元包括 Runnable 和 Callable,而执行机制由 Executor 框架提供。

    一、Executor框架:

    1、Executor框架两级调度模型:

      在上层,java多线程程序把应用分解为若干个任务,然后执行用户级调度器,即Executor框架,将任务映射为若干数量的线程。

      在底层,操作系统内核将这些线程映射到硬件处理器上。

      应用程序由Executor框架控制上层调度,下层调度由操作系统内核控制,下层调度不受到应用程序控制。

    2、Executor框架结构:主要由3大部分组成

    (1)任务:被执行任务需要实现的接口,Runnable接口、Callable接口。

    (2)任务的执行:任务执行机制的核心接口Executor,以及继承自 Executor 的 ExecutorService 接口。ExecutorService 有两个实现类 ThreadPoolExecutor 和 ScheduledThreadPoolExecutor。

    (3)异步计算的结果:包括接口 Future 和实现 Futrue 接口的 FutureTask 类。

    3、Executor框架的使用:

    (1)任务创建:主线程首先创建实现 Runnable 或者 Callable 接口的任务对象。工具类 Executors 可以把一个 Runnable 对象封装为一个 Callable 对象,Executors.callable(Runnable task) 或

    Executor.callable(Runnable task,Object resule)。

    (2)执行:然后把Runnable 对象直接交给 ExecutorService 执行, ExecutorService.execute(Runnable command);或者也可以把Runnable 对象提交给ExecutorService执行,ExecutorService.submit(Runnable task)或 ExecutorService.submit(Callable<T> task)。

      如果执行ExecutorService.submit(...),ExecutorService 将返回一个实现Future接口的对象FutureTask。由FutureTask实现了Runnable,也可以直接创建FutureTask,然后直接交给ExecutorService运行。

    (3)获取结果:主线程可以执行FutureTask.get()方法来等待任务执行完成。主线程也可以执行FutureTask.cancle(boolean mayInterruptIfRunning),来取消此任务创建。

    4、Executor框架的成员:ThreadPoolExecutor、ScheduledThreaPoolExecutor、Future 接口、Runnable 接口、Callable 接口和 Executors 工厂类。

      ThreadPoolExecutor是Executor框架最核心的线程池实现类。

      通过Executors工厂类可以创建四种线程池,分别是FixedThreadPool、SingleThreadExecutor、CachedThreadPool、ScheduledThreaPoolExecutor。

  • 相关阅读:
    南阳33(蛇形填数)规律题;
    南阳241(字母统计)
    南阳57(6174问题)
    android图形基础知识
    Linux中yum手动安装、手动建立仓库文件夹关联实现关联包自动安装、yum相关命令使用
    debug连线指令
    Qt之信号连接,你Out了吗?
    hdu-4607-Park Visit
    MySQL 分区表 partition线上修改分区字段,后续进一步学习partition (1)
    如何用正则将多个空格看成一个空格结合spllit()方法将文本数据入库
  • 原文地址:https://www.cnblogs.com/guoyu1/p/12180417.html
Copyright © 2020-2023  润新知