一、七大核心参数

1.corePoolSize                            核心线程数

2.maximumPoolSize                   最大线程池参数

3.keepAliveTime                         任务结束后,线程存活此处指定时间后才会被释放

4.TimeUnit                                  上一个参数的单位,常用s,ms

5.BlockingQueue                        队列,当核心线程用完时,任务放进队列

6.ThreadFactory                         线程工厂

7.丢弃策略                                  默认Abort,直接丢弃,并抛出异常

二、线程池原理

所有线程池,刚创建时,都只包含0个线程。

当为线程指定任务时,如果同时指定多个任务,线程池会创建corePoolSize个线程执行任务,

剩下的任务会放入BlockingQueue中缓存,

如果队列满了,装不下(有界队列),如果继续往线程池中部署任务,那么会创建新的线程执行任务,但是总线程数不会超过maximumPoolSize个,

当任务执行完毕,经过keepAliveTime(TimeUnit 指定时间单位)后,会释放线程,让线程池中保持corePoolSize个线程。

并发编程系列---【线程池七大核心参数】相关推荐

  1. 【Java 并发编程】线程池机制 ( ThreadPoolExecutor 线程池构造参数分析 | 核心线程数 | 最大线程数 | 非核心线程存活时间 | 任务阻塞队列 )

    文章目录 前言 一.ThreadPoolExecutor 构造参数 二.newCachedThreadPool 参数分析 三.newFixedThreadPool 参数分析 四.newSingleTh ...

  2. [转]Java并发编程:线程池的使用

    Java并发编程:线程池的使用 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了, ...

  3. Java并发编程:线程池的使用

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

  4. 《转载》Python并发编程之线程池/进程池--concurrent.futures模块

    本文转载自 Python并发编程之线程池/进程池--concurrent.futures模块 一.关于concurrent.futures模块 Python标准库为我们提供了threading和mul ...

  5. 【Java 并发编程】线程池机制 ( 线程池示例 | newCachedThreadPool | newFixedThreadPool | newSingleThreadExecutor )

    文章目录 前言 一.线程池示例 二.newCachedThreadPool 线程池示例 三.newFixedThreadPool 线程池示例 三.newSingleThreadExecutor 线程池 ...

  6. (转)Java并发编程:线程池的使用

    背景:线程池在面试时候经常遇到,反复出现的问题就是理解不深入,不能做到游刃有余.所以这篇博客是要深入总结线程池的使用. ThreadPoolExecutor的继承关系 线程池的原理 1.线程池状态(4 ...

  7. Java并发编程一线程池简介

    推荐:Java并发编程汇总 Java并发编程一线程池简介 为什么我们需要使用线程池? 我们知道线程是一种比较昂贵的资源,我们通过程序每创建一个线程去执行,其实操作系统都会对应地创建一个线程去执行我们的 ...

  8. Java并发编程一线程池的五种状态

    推荐:Java并发编程汇总 Java并发编程一线程池的五种状态 原文地址 Java多线程线程池(4)–线程池的五种状态 正文 线程池的5种状态:Running.ShutDown.Stop.Tidyin ...

  9. c++ 线程池_JAVA并发编程:线程池ThreadPoolExecutor源码分析

    前面的文章已经详细分析了线程池的工作原理及其基本应用,接下来本文将从底层源码分析一下线程池的执行过程.在看源码的时候,首先带着以下两个问题去仔细阅读.一是线程池如何保证核心线程数不会被销毁,空闲线程数 ...

最新文章

  1. 7年前轰动全球的Science论文,被发现可能搞错了
  2. 面试官:给我说一下 Spring MVC 拦截器的原理?
  3. 新闻文字上下滚动代码
  4. 糟糕程序员的20个坏习惯
  5. Catlike Coding网站文章解析 -- 2.Procedural Grid
  6. 80年代出生人坦白十大尴尬事80一代全搜集
  7. 【MyBatis框架】高级映射-延迟加载
  8. android dao设计模式,DAO设计模式
  9. 集合框架之Connection(马士兵教育视频教程总结笔记)
  10. 千月2021全新改版影视app系统源码 影视app全新双端开源系统 全开源 带投屏 带教程
  11. windows下OpenCV扩展模块(Extra Contrib)配置时的“Invalid escape sequence \o“解决方法
  12. 小学生python编程教程-极度舒适的全套 Python 入门教程,小学生看了也能学会
  13. 电路基础-6(电容、电感、一阶电路)
  14. Django 千锋培训读书笔记
  15. ASDFZ 3633 -- 排兵布阵
  16. springboot+mysql+基于Android的校园综合服务App平台的设计 毕业设计-附源码181042
  17. Visitor(访问者)示例
  18. Java基础入门--学习笔记
  19. 从装大象中我们学会了什么设计模式
  20. spring boot Java 视频转换:avi转mp4

热门文章

  1. mac本mongodb下载和安装
  2. 看不见的大猩猩:无处不在的6大错觉
  3. 常用的数据可视化工具及图形
  4. 关于Java NoSuchElementException: No value present以及java.lang.NullPointerException处理
  5. Hbase写操作偶尔有延迟
  6. 用文件结束符(Ctrl+Z)结束元素输入时不要忘记将流cin恢复为有效状态
  7. python batch normalization_Batch Normalization的正确打开方式
  8. 让PPT效果脱颖而出的几大技巧!
  9. 树模型系列之集成学习(Bagging、Boosting、Stacking)
  10. centos8使用grubby修改内核启动参数