一、UML图 二、创建线程池 2.1、Executors工厂方法 在ThreadPoolExecutor类的文档注释中有这么一句话:An ExecutorService that executes each submitted task using one of possibly several p ...
分类:
编程语言 时间:
2021-07-05 18:34:44
阅读次数:
0
前言 多线程是我们日常工作中很少能接触到的技术,但是面试的时候100%会被问到,万一工作中用到了基本不会,本篇咱们就来深入分析线程池的实现类ThreadPoolExecutor。 1、构造方法 构造方法中有4个方法,本质上都是调用的下面这个构造方法: public ThreadPoolExecuto ...
分类:
编程语言 时间:
2021-01-05 10:53:28
阅读次数:
0
为什么要用线程池 线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性。使用线程池可以重复利用已创建的线程降低线程创建和销毁带来的消耗,随之即可提高响应速度(当一个任务到达时,不需要重新创建线程来为之服务,重用已有线程),还可以通过线程池控制线程资源统一分配和监控等。 线程池工 ...
分类:
编程语言 时间:
2020-03-15 09:46:51
阅读次数:
63
java中的所说的线程池,一般都是围绕着 ThreadPoolExecutor 来展开的。其他的实现基本都是基于它,或者模仿它的。所以只要理解 ThreadPoolExecutor, 就相当于完全理解了线程池的精髓。 其实要理解一个东西,一般地,我们最好是要抱着自己的疑问或者理解去的。否则,往往收获 ...
分类:
编程语言 时间:
2020-02-06 01:45:37
阅读次数:
77
1、线程池简介 1.1 线程池的概念: 线程池就是首先创建一些线程,它们的集合称为线程池。使用线程池可以很好地提高性能,线程池在系统启动时即创建大量空闲的线程,程序将一个任务传给线程池,线程池就会启动一条线程来执行这个任务,执行结束以后,该线程并不会死亡,而是再次返回线程池中成为空闲状态,等待执行下 ...
分类:
编程语言 时间:
2020-01-19 22:19:14
阅读次数:
104
什么是适配器模式 网上已有很多的教程,不细讲了。可以参考:[五分钟了解设计模式(3) 适配器模式]( https://www.cnblogs.com/kubidemanong/p/9609856.html) 在适配器模式中,一定要识别清楚,Target Adaptee Adapter分别是哪些类或接 ...
分类:
其他好文 时间:
2019-11-03 01:39:45
阅读次数:
126
1.变量 ThreadPoolExecutor先定义了这几个常量,初看时一脸懵逼,其实它就是用int的二进制高三位来表示线程池的状态, 先回顾一下位运算: ...
分类:
编程语言 时间:
2019-09-05 01:01:54
阅读次数:
72
public class ThreadPoolExecutor1 extends AbstractExecutorService1 { // 11100000000000000000000000000000 = -536870912, 高3位表示线程池状态, 后29位表示线程个数 private f... ...
分类:
其他好文 时间:
2019-08-19 17:33:45
阅读次数:
88
在阅读Java线程池ThreadPoolExecutor源码的时候,发现它很巧妙地把线程池状态runState和线程数workCount两个变量存放在了一个int型变量里面。 我们先看一个数值,如下是一个32位int的二进制: 1)高位第一位表示符号,0是正数,1是负数 2)高位第二位和第三位表示r ...
分类:
其他好文 时间:
2019-05-29 23:27:13
阅读次数:
141
在日常的开发调试中,我们经常会直接new一个Thread对象来执行某个任务。这种方式在任务数较少的情况下比较简单实用,但是在并发量较大的场景中却有着致命的缺陷。例如在访问量巨大的网站中,如果每个请求都开启一个线程来处理的话,即使是再强大的服务器也支撑不住。一台电脑的CPU资源是有限的,在CPU较为空 ...
分类:
编程语言 时间:
2018-07-16 11:25:32
阅读次数:
120