您当前的位置: 首页 >  Java

小志的博客

暂无认证

  • 1浏览

    0关注

    1217博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Java并发多线程编程——Executor接口

小志的博客 发布时间:2021-06-17 23:02:51 ,浏览量:1

目录
    • 一、Executor接口的理解
    • 二、Executor接口的类图结构
    • 三、Executor接口中常用的方法
    • 四、线程池的创建分为两种方式(主要介绍通过ThreadPoolExecutor方式)
        • 1、ThreadPoolExecutor类中的构造方法
        • 2、 ThreadPoolExecutor类中构造函数的参数解析
        • 3、ThreadPoolExecutor类创建线程池示例

一、Executor接口的理解
  • Executor属于java.util.concurrent包下;
  • Executor是任务执行机制的核心接口;
二、Executor接口的类图结构

在这里插入图片描述

  • 由类图结构可知:
  • ThreadPoolExecutor 继承了AbstractExecutorService接口;
  • AbstractExecutorService接口实现了ExecutorService接口;
  • ExecutorService继承了Executor接口;
  • 因此以下部分主要讲解ThreadPoolExecutor类。
三、Executor接口中常用的方法
  • void execute(Runnable command) 在将来的某个时间执行给定的命令。 该命令可以在一个新线程,一个合并的线程中或在调用线程中执行,由Executor实现。
四、线程池的创建分为两种方式(主要介绍通过ThreadPoolExecutor方式)
  • 注:通过Executors类的方式创建线程池,参考lz此博文链接https://wwwxz.blog.csdn.net/article/details/117934869
1、ThreadPoolExecutor类中的构造方法
  • public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue workQueue,defaultHandler)
2、 ThreadPoolExecutor类中构造函数的参数解析
  • corePoolSize 核心线程最大数量,通俗点来讲就是,线程池中常驻线程的最大数量
  • maximumPoolSize 线程池中运行最大线程数(包括核心线程和非核心线程)
  • keepAliveTime线程池中空闲线程(仅适用于非核心线程)所能存活的最长时间
  • unit 存活时间单位,与keepAliveTime搭配使用
  • workQueue 存放任务的阻塞队列
  • handler 线程池饱和策略
3、ThreadPoolExecutor类创建线程池示例
  • 代码
package com.xz.thread.executor;

import java.util.concurrent.*;

/**
 * @description:
 * @author: xz
 * @create: 2021-06-16 22:16
 */
public class Demo {
    public static void main(String[] args) {
        ThreadPoolExecutor pool = new ThreadPoolExecutor(3,3,
                1L, TimeUnit.MINUTES,new LinkedBlockingDeque());
        for(int i=1;i            
关注
打赏
1661269038
查看更多评论
0.3770s