Java多线程——Executor框架详解

本文详细解析了Java多线程中的Executor框架,包括其两级调度模型、核心接口Executor、线程池实现如ThreadPoolExecutor和ScheduledThreadPoolExecutor,以及它们各自的执行流程和适用场景。Executor框架将任务提交与执行分离,通过ThreadPoolExecutor实现线程池管理,如FixedThreadPool、SingleThreadExecutor和CachedThreadPool。ScheduledThreadPoolExecutor用于定时调度任务,提供了不同线程数量的配置方案,满足多样化的多线程需求。
摘要由CSDN通过智能技术生成

Java多线程——Executor框架详解

  什么是Executor的两级调度模型

 一、Executor框架两级调度模型

在这里插入图片描述

  两级调度模型:
    应用层+操作系统层
    应用层:将应用分解为若干个任务,使用用户级的调度器(Executor框架)将这些任务映射为固定数量的线程。
    操作系统层:操作系统内核将这些线程映射到硬件处理器上。

 二、Executor框架详解

  1、Executor框架的结构(三大块)
   ①任务:被执行的任务需要实现Runnable或Callable接口
   ②任务的执行:任务执行机制的核心接口Executor,以及其子接口ExecutorService,以及ExecutorService较为常用的两个子接口(ThreadPoolExecutor和ScheduledThreadPoolExecutor)
   ③异步计算的结果:Future接口及其实现类FutureTask类
  2、Executor框架的组成成员

在这里插入图片描述

   ①Executor接口:Executor框架的基础,将任务的提交与任务的执行分离。
   ②ThreadPoolExecutor:线程池核心实现类,用来执行被提交的任务。
   ③ScheduledThreadPoolExecutor:线程池实现类,在给定的延迟后运行命令,或定期执行命令(比Timer更好)
   ④Future接口及其子类FutureTask类:异步计算的结果
   ⑤Runnable接口和Callable接口的实现类:可以被线程池实现类(ThreadPoolExecutor…)所执行。
  3、Executor框架的执行流程(类似线程池执行流程)
   ①主线程创建Runnable或Callable接口的任务对象。(Executors工具类可以将Runnable封装成Callable对象)
   ②任务提交(两种方式)
   将Runnable对象通过ExecutorService.execute(Runnable command)交给ExecutorService执行(没有返回值
   将Callable对象通过ExecutorService.submit(Callable task)交给ExecutorService执行(有返回值
   可以把Runnable对象通过Executors包装成Callable对象并使用submit()提交,也可获取返回值。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值