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
Feign调用全局异常处理解决方案
Jun 24 Java/Android
idea搭建可运行Servlet的Web项目
Jun 26 Java/Android
自从在 IDEA 中用了热部署神器 JRebel 之后,开发效率提升了 10(真棒)
Jun 26 Java/Android
Java基础之线程锁相关知识总结
Jun 30 Java/Android
Java Socket实现多人聊天系统
Jul 15 Java/Android
java调用Restful接口的三种方法
Aug 23 Java/Android
SpringBoot+Redis实现布隆过滤器的示例代码
Mar 17 Java/Android
Spring依赖注入多种类型数据的示例代码
Mar 31 Java/Android
mybatis-plus模糊查询指定字段
Apr 28 Java/Android
Android Studio实现简易进制转换计算器
May 20 Java/Android
Java中生成微信小程序太阳码的实现方案
Jun 01 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
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
2015/02/12 PHP
WordPress中使主题支持小工具以及添加插件启用函数
2015/12/22 PHP
PHP设计模式之命令模式示例详解
2020/12/20 PHP
让广告代码不再影响你的网页加载速度
2006/07/07 Javascript
javascript 特殊字符串
2009/02/25 Javascript
超级24小时弹窗代码 24小时退出弹窗代码 100%弹窗代码(IE only)
2010/06/11 Javascript
JQuery入门—编写一个简单的JQuery应用案例
2013/01/03 Javascript
jQuery切换网页皮肤并保存到Cookie示例代码
2014/06/16 Javascript
JS实现闪动的title消息提醒效果
2014/06/20 Javascript
jQuery选择器源码解读(五):tokenize的解析过程
2015/03/31 Javascript
jqTransform美化表单
2015/10/10 Javascript
果断收藏9个Javascript代码高亮脚本
2016/01/06 Javascript
用canvas 实现个图片三角化(LOW POLY)效果
2016/02/18 Javascript
Bootstrap基本组件学习笔记之下拉菜单(7)
2016/12/07 Javascript
JS实现的Unicode编码转换操作示例
2017/04/28 Javascript
全面解析vue中的数据双向绑定
2017/05/10 Javascript
javascript帧动画(实例讲解)
2017/09/02 Javascript
详解Vue组件实现tips的总结
2017/11/01 Javascript
vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能
2018/03/01 Javascript
Node.js + express基本用法教程
2019/03/14 Javascript
[01:07]DOTA2次级职业联赛 - Fpb战队宣传片
2014/12/01 DOTA
python字符串与url编码的转换实例
2018/05/10 Python
浅谈keras 的抽象后端(from keras import backend as K)
2020/06/16 Python
python用Configobj模块读取配置文件
2020/09/26 Python
香港化妆品经销商:我的公主
2016/08/05 全球购物
给孩子的新年寄语
2014/04/08 职场文书
小学一年级学生评语
2014/04/22 职场文书
学校课外活动总结
2014/05/08 职场文书
诚实守信演讲稿
2014/09/01 职场文书
党的群众路线教育实践活动专题组织生活会发言材料
2014/10/17 职场文书
小学生安全教育广播稿
2014/10/20 职场文书
党的群众路线教育实践活动个人整改落实情况汇报
2014/10/28 职场文书
2014年销售工作总结范文
2014/12/01 职场文书
实施意见格式范本
2015/06/05 职场文书
2015军训通讯稿大全
2015/07/18 职场文书
2016年党课培训学习心得体会
2016/01/07 职场文书