Java线程池ThreadPoolExecutor的使用

ThreadPoolExecutor就是我们用来实现线程的一个执行器,它实现了Excutor和ExecutorService接口。Excutor接口只定义了一个方法就是execute用来执行任务。ExecutorService继承于Excutor并添加了一些其他的执行任务的方法和管理线程池的方法。

ThreadPoolExecutor继承关系

自己通过ThreadPoolExecutor创建一个ExecutorService实例

创建ThreadPoolExecutor的实例需要7个参数,分别如下:

①、corePoolSize:核心线程数,线程池中的线程数量

②、maximumPoolSize: 线程池中最大的线程数,

③、keepAliveTime: 大于核心数的线程,空闲的时间

④、TimeUnit: keepAliveTime的时间单元

⑤、workQueue:工作队列,大于核心线程数的任务加入工作队列

⑥、threadFactory:创建线程的工厂类,如果需要可以自己实现

⑦、RejectedExecutionHandler:当任务数大于最大线程数并且队列已满时,采用的拒绝策略

ThreadPoolExecutor构造方法

创建ThreadPoolExecutor测试

使用工具类Executors创建线程池,

这个工具类提供了很多创建线程池的方法,也提供了多种类型的线程池,下图是所有的方法,并提供了几种ThreadFactory的实现。

Executors方法

几种常用线程池

java线程池执行器_Java线程池ThreadPoolExecutor的使用相关推荐

  1. java executor 源码_Java线程池ThreadPoolExecutor深度探索及源码解析

    我们的程序里,时常要使用多线程.因此多线程的管理变的尤为重要.ThreadPoolExecutor很好的解决了这一点.本篇文章主要从源码入手,分析ThreadPoolExecutor的原理. 1.标记 ...

  2. java线程池功能_Java线程池总结

    一.线程池 线程池适合处理的任务:执行时间短.工作内容较为单一. 合理使用线程池带来的好处: 1)降低资源消耗:重复利用已创建的线程降低线程创建和销毁造成的开销 2)提高响应速度:当任务到达时,任务可 ...

  3. java io密集型任务_Java线程池讲解——针对IO密集型任务

    sap java开发技术详解&mdash基础 94.01元 (需用券) 去购买 > 针对 IO 密集型的任务,我们可以针对原本的线程池做一些改造,从而可以提高任务的处理效率. 基本 在阿 ...

  4. java线程不执行_java线程池,阿里为什么不允许使用Executors?

    带着问题 阿里Java代码规范为什么不允许使用Executors快速创建线程池? 下面的代码输出是什么? ThreadPoolExecutor executor = new ThreadPoolExe ...

  5. java 线程池数量_java线程池及创建多少线程合适

    java线程池 1.以下是ThreadPoolExecutor参数完备构造方法: public ThreadPoolExecutor(int corePoolSize,int maximumPoolS ...

  6. java线程池中断处理_Java线程中断机制

    1. 引言 对Java中断没有一个全面的了解,可能会误以为被中断的线程将立马退出运行,但事实并非如此.中断机制是如何工作的?捕获或检测到中断后,是抛出InterruptedException还是重设中 ...

  7. java new thread参数_java线程池01-ThreadPoolExecutor构造方法参数的使用规则

    为了更好的使用多线程,JDK提供了线程池供开发人员使用,目的在于减少线程的创建和销毁次数,以此达到线程的重复利用. 其中ThreadPoolExecutor是线程池中最核心的一个类,我们先简单看一下这 ...

  8. java线程池概念_Java 线程池概念、原理、简单实现

    线程池的思想概述 我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结東了,这样频繁创建线程就会大大降低系 ...

  9. java线程池分类_JAVA线程池有几种类型?

    常用的JAVA线程池有以下几种类型: 1.newCachedThreadPool 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程. 这种类型的线程池特点是 ...

最新文章

  1. JAVA复习5(集合——LinkedList)
  2. P4449-于神之怒加强版【莫比乌斯反演】
  3. 探探自动配对PHP_CentOS7 - 安装Apache HTTP Server和PHP
  4. java---连接池的学习
  5. Mybatis的动态拼接条件
  6. Multiple substitutions specified in non-positional format; did you mean to add the formatted=false
  7. Linux命令(二)
  8. 文本、词相似度论文阅读笔记
  9. cocos3.2触摸事件接收顺序
  10. 数据结构c语言版第4版答案,严蔚敏版数据结构(C语言版)参考答案第四、五章
  11. IDEA如何导出war包
  12. python爬虫中国土地市场网的相关数据最新2021/5/7
  13. 商业银行的组织结构-决策系统、执行系统和监督系统
  14. URLError: urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify fai
  15. 【新年福利】2019年值得一用的8款协作工具
  16. 计算机毕业设计ssm+vue基本微信小程序的“香草屋”饮料奶茶点单小程序
  17. Centos7 GNOME Desktop桌面版-调整屏幕分辨率
  18. 短信业务 防恶意攻击解决方案
  19. 互联网 Web 技术发展史
  20. “玲珑杯”郑州轻工业学院第九届ACM程序设计大赛圆满结束

热门文章

  1. mac下终端命令行下添加mysql命令
  2. Nginx学习_狂神
  3. Java面向对象编程篇5——枚举
  4. oracle数据库read only,oracle 报错Linux-x86_64 Error: 30: Read-only file system
  5. 包装类型与基本类型的装箱与拆箱操作
  6. mysql5.7主从全备恢复_mysql主从,或者全备份
  7. pvrect r语言 聚类_R语言常用统计方法包+机器学习包(名称、简介)
  8. 数据结构与算法————稀疏数组
  9. Eclipse集成PyDev5.2.0开发插件
  10. guid主分区表损坏怎么办_抹盘提示进程失败,导致Win 10无法正常开机怎么办?...