Executors线程池核心参数及线程增减

news/2023/12/9 18:50:55 标签: java

伸缩流程

clipboard.png

主要是corePoolSize、maximumPoolSize、largestPoolSize三个变量。

比喻

  假如有一个工厂,工厂里面有10个工人,每个工人同时只能做一件任务。

  因此只要当10个工人中有工人是空闲的,来了任务就分配给空闲的工人做;

  当10个工人都有任务在做时,如果还来了任务,就把任务进行排队等待;

  如果说新任务数目增长的速度远远大于工人做任务的速度,那么此时工厂主管可能会想补救措施,比如重新招4个临时工人进来;

  然后就将任务也分配给这4个临时工人做;

  如果说着14个工人做任务的速度还是不够,此时工厂主管可能就要考虑不再接收新的任务或者抛弃前面的一些任务了。

  当这14个工人当中有人空闲时,而新任务增长的速度又比较缓慢,工厂主管可能就考虑辞掉4个临时工了,只保持原来的10个工人,毕竟请额外的工人是要花钱的。

解读

  这个例子中的corePoolSize就是10,而maximumPoolSize就是14(10+4)。

  也就是说corePoolSize就是线程池大小,maximumPoolSize是线程池的一种补救措施,即任务量突然过大时的一种补救措施。

  largestPoolSize只是一个用来起记录作用的变量,用来记录线程池中曾经有过的最大线程数目,跟线程池的容量没有任何关系。

参考

  • 聊聊并发(三)Java线程池的分析和使用


http://www.niftyadmin.cn/n/1480896.html

相关文章

Oracle-数据表单行操作语句

1.字符函数 查询所有员工的姓名,并分别将所有字母小写,所有字母首字母大写(lower将字母大写变小写(降低) initcap(首字母大写)) select ename, lower(ename), initcap(ename) from emp;查询所有员工的姓名,并将其中的A…

EL表达式向select中赋值

在使用el表达式的时候&#xff0c;有时需要向select下拉菜单中赋值&#xff0c;可以使用三目运算法进行赋值。 <select class"form-control" id"type" name"type"> <option ${notify.type eq…

mysql查询数据表中某字段重复的数据

SELECT regis_carVIN,COUNT(*) AS COUNT FROM t_regis_caruser GROUP BY regis_carVIN HAVING COUNT>1;

h264acc

2019独角兽企业重金招聘Python工程师标准>>> aac音频&#xff1a; 打包aac音频必须加上一个adts(Audio Data Transport Stream)头&#xff0c;共7Byte&#xff0c;adts包括fixed_header和variable_header两部分&#xff0c;各28bit。 fixed_header syncword12b固定为…

JAVA-包装类

一、八种数据类型对应的包装类 关系&#xff1a; 自动封箱就是&#xff1a;自动将基本数据类型转换为包装器类型 自动拆箱就是&#xff1a;自动将包装器类型转换为基本数据类型 从 jdk 1.5 出现之后自动封箱和自动拆箱&#xff0c;就有编译器帮助完成&#xff01; Jav…

JAVA-字符串String“”==“”的判断

关于字符串判断 String a “a”; String b “b”; String c “ab”;//方法区 直接赋值的方式 最多产生一个对象在方法区&#xff0c; 如果方法区中已经有了该字符串常量&#xff0c;那么只会把该常量的引用返回给c &#xff0c;而不会创建新的对象。这种方式会产生0-1个字…

JAVA-StringBuffer

它是一个增强的String类&#xff0c;在长度可变上增强了。长度和内容都可变。 String是不可变的类型&#xff0c;即创建一个String对象后&#xff0c;就不能修改这个String&#xff0c;平常使用的”aa””bb”生成”aabb”这个过程中&#xff0c;实际是创建了三个String对象&a…

JAVA-StringBuffer与StringBuilder的区别

Stringbuilder非线程安全的。执行效率比较高 重效率&#xff0c;轻安全。 StringBuffer和StringBuilder的共同点和区别 共同点&#xff1a; 1&#xff1a;都是对字符串做操作的。 2&#xff1a;都是可变的字符串序列。 3&#xff1a;底层都是使用char[]数组实现。 4&…

JAVA-日期类

1.Date时间 Date date new Date(); System.out.println(date); System.out.println(date.toLocaleString());//过时的方法 System.out.println(date.getDate());//当前的日期 一个月的第几天 System.out.println(date.getDay());//星期几 返回值 (0 Sunday, 1 Monday, 2 Tu…

JAVA-Math类

关于数学相关的一个类&#xff0c;主要包含了一些数学公式&#xff0c;求绝对值&#xff0c;最大值最小值&#xff0c;和堆角度的操作的方法。 (Math.cbrt(27));//立方根 double result 0; result Math.ceil(2.2);//天花板&#xff0c;返回大于等于实际参数的正整数的值 resu…

c#后台List转为js对象(在前台操作)

<!-- 用html标签防止html转义 (html.raw方法转双引号中的双引号时不会转义) --><input id"json" type"hidden" value"JsonConvert.SerializeObject(Model)" />

java使用log4j

1.首先需要log4j的配置文件&#xff0c;将配置文件放在src根目录下。 配置文件内容如下&#xff1a; &#xff08;1&#xff09; log4j配置详解 - stone - stonexmx 的博客 ### set log levels ### log4j配置详解 - stone - stonexmx 的博客log4j.rootLogger debug , stdo…

【HTML5】webworker简介

webworker的作用 让web应用程序具备多线程处理能力&#xff0c;常用来处理一些比较耗时的任务。假设我们的应用上有个纯前端实现的马赛克滤镜&#xff0c;我们知道图像处理&#xff0c;尤其是大图 片的处理通常是比较耗费时的&#xff0c;随时都有可能让你的页面卡个几秒&#…

java生成excel图表

使用java编写生成excel当中的图表图片。 编写之前需要引入jar包&#xff0c;所需要的jar包&#xff1a;jfreechart-1.0.13.jar jcommon-1.0.16.jar package com.yuanhe.calculator.util;import java.awt.Color; import java.awt.Font; import java.io.File; import java.io.F…

HDU 1505 City Game

最大全1子矩阵面积*3 #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std;const int maxn200010; int a[maxn]; int L[maxn],R[maxn]; int m,n; int tmp[maxn][maxn],b[maxn][maxn];void f() {for(int i1; …

JAVA-Random

Random类中实现的随机算法是伪随机&#xff0c;也就是有规则的随机。在进行随机时&#xff0c;随机算法的起源数字称为种子数(seed)&#xff0c;在种子数的基础上进行一定的变换&#xff0c;从而产生需要的随机数字。 相同种子数的Random对象&#xff0c;相同次数生成的随机数…
最新文章