Java并发编程之Executor接口的使用


Posted in Java/Android onJune 21, 2021

一、Executor接口的理解

  • Executor属于java.util.concurrent包下;
  • Executor是任务执行机制的核心接口

二、Executor接口的类图结构

Java并发编程之Executor接口的使用

由类图结构可知:

  • ThreadPoolExecutor 继承了AbstractExecutorService接口;
  • AbstractExecutorService接口实现了ExecutorService接口;
  • ExecutorService继承了Executor接口;
  • 因此以下部分主要讲解ThreadPoolExecutor类。

三、Executor接口中常用的方法

void execute(Runnable command) 在将来的某个时间执行给定的命令。 该命令可以在一个新线程,一个合并的线程中或在调用线程中执行,由Executor实现。

四、线程池的创建分为两种方式(主要介绍通过ThreadPoolExecutor方式)

注:通过Executors类的方式创建线程池,参考lz此博文链接https://www.3water.com/article/215163.htm

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<=5;i++){
            pool.execute(new Runnable() {
                @Override
                public void run() {
                    System.out.println(Thread.currentThread().getName());
                    try {
                        Thread.sleep(1000);
                        System.out.println("睡眠一秒钟");
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            });
        }
    }
}

输出结果如下图

Java并发编程之Executor接口的使用

结论:无论是创建何种类型线程池(newFixedThreadPool、newSingleThreadExecutor、newCachedThreadPool等等),均会调用ThreadPoolExecutor构造函数。

Java并发编程之Executor接口的使用
Java并发编程之Executor接口的使用

到此这篇关于Java并发编程之Executor接口的使用的文章就介绍到这了,更多相关Java Executor接口内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Java/Android 相关文章推荐
浅谈Java实现分布式事务的三种方案
Jun 11 Java/Android
java Nio使用NioSocket客户端与服务端交互实现方式
Jun 15 Java/Android
详解Java实现设计模式之责任链模式
Jun 23 Java/Android
spring cloud 配置中心客户端启动遇到的问题
Sep 25 Java/Android
java代码实现空间切割
Jan 18 Java/Android
引用计数法和root搜索算法以及JVM中判定对象需要回收的方法
Apr 19 Java/Android
Spring Boot 使用 Spring-Retry 进行重试框架
Apr 24 Java/Android
Java 定时任务技术趋势简介
May 04 Java/Android
Java实现简单小画板
Jun 10 Java/Android
Java异常体系非正常停止和分类
Jun 14 Java/Android
SpringCloud中分析讲解Feign组件添加请求头有哪些坑梳理
Jun 21 Java/Android
httpclient调用远程接口的方法
Aug 14 Java/Android
深入理解以DEBUG方式线程的底层运行原理
浅谈什么是SpringBoot异常处理自动配置的原理
SpringAop日志找不到方法的处理
详解SpringBoot异常处理流程及原理
Java新手教程之ArrayList的基本使用
Java各种比较对象的方式的对比总结
Jun 20 #Java/Android
Java Optional<Foo>转换成List<Bar>的实例方法
Jun 20 #Java/Android
You might like
编写漂亮的代码 - 将后台程序与前端程序分开
2008/04/23 PHP
php 批量添加多行文本框textarea一行一个
2014/06/03 PHP
PHP实现取得HTTP请求的原文
2014/08/18 PHP
Cygwin中安装PHP方法步骤
2015/07/04 PHP
php编程每天必学之表单验证
2016/03/01 PHP
php版微信公众平台入门教程之开发者认证的方法
2016/09/26 PHP
列表内容的选择
2006/06/30 Javascript
js url传值中文乱码之解决之道
2009/11/20 Javascript
jquery插件 cluetip 关键词注释
2010/01/12 Javascript
js获取指定日期前后的日期代码
2013/08/20 Javascript
javascript教程之不完整的继承(js原型链)
2014/01/13 Javascript
JavaScript AOP编程实例
2015/06/16 Javascript
js实现跨域的方法实例详解
2015/06/24 Javascript
vue实现图片预览组件封装与使用
2019/07/13 Javascript
2019最新21个MySQL高频面试题介绍
2020/02/06 Javascript
node.js中 mysql 增删改查操作及async,await处理实例分析
2020/02/11 Javascript
Python简单删除列表中相同元素的方法示例
2017/06/12 Python
flask + pymysql操作Mysql数据库的实例
2017/11/13 Python
一篇文章快速了解Python的GIL
2018/01/12 Python
python+pillow绘制矩阵盖尔圆简单实例
2018/01/16 Python
Python使用POP3和SMTP协议收发邮件的示例代码
2019/04/16 Python
python+openCV利用摄像头实现人员活动检测
2019/06/22 Python
python 实现的发送邮件模板【普通邮件、带附件、带图片邮件】
2019/07/06 Python
pandas 中对特征进行硬编码和onehot编码的实现
2019/12/20 Python
python生成任意频率正弦波方式
2020/02/25 Python
python中pdb模块实例用法
2021/01/15 Python
html5中为audio标签增加停止按钮动作实现方法
2013/01/04 HTML / CSS
BabyBjörn婴儿背带法国官网:BabyBjorn法国
2018/06/16 全球购物
美国波西米亚风格精品店:South Moon Under
2019/10/26 全球购物
学生会竞选演讲稿
2014/04/24 职场文书
个人求职信范文
2014/05/24 职场文书
村党支部书记个人对照材料汇报
2014/10/26 职场文书
3.15消费者权益日活动总结
2015/02/09 职场文书
入党申请书怎么写?
2019/06/11 职场文书
Mysql Innodb存储引擎之索引与算法
2022/02/15 MySQL
python疲劳驾驶困倦低头检测功能的实现
2022/04/04 Python