juc线程池原理(六):jdk线程池中的设计模式
一、jdk中默认线程池中的代理模式
单例类线程池只有一个线程,无边界队列,适合cpu密集的运算。jdk中创建线程池是通过Executors类中提供的静态的方法来创建的,其中的单例类线程池的方法如下:
public static ExecutorService newSingleThreadExecutor() { return new FinalizableDelegatedExecutorService(new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue())); }public static ScheduledExecutorService newSingleThreadScheduledExecutor() { return new DelegatedScheduledExecutorService(new ScheduledThreadPoolExecutor(1)); }
说明:
1、newSingleThreadExecutor的代理模式类图如下:
new ThreadPoolExecutor()实例是被代理对象作为参数传给代理对象FinalizableDelegatedExecutorService,通过代理对象限制对ThreadPoolExecutor进行参数化调整。
2、newSingleThreadScheduledExecutor的代理模式类图如下:
new ScheduledThreadPoolExecutor(1)实例是被代理对象作为参数传递给代理对象DelegatedScheduledExecutorService,通过代理对象限制对ThreadPoolExecutor进行参数化调整。
juc线程池原理(六):jdk线程池中的设计模式相关推荐
- python线程池原理_Python定时器线程池原理详解
这篇文章主要介绍了Python定时器线程池原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 定时器执行循环任务: 知识储备 Timer(int ...
- 数据库连接池原理及常用连接池介绍
一.背景介绍 1.1 什么是连接池 数据库连接池负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个. 1.2 为什么要使用连接池 数据库连接是一种关键的有 ...
- 连接池原理介绍+常用连接池介绍
下面以访问MySQL为例,执行一个SQL命令,如果不使用连接池,需要经过哪些流程. 不使用数据库连接池的步骤: TCP建立连接的三次握手 MySQL认证的三次握手 真正的SQL执行 MySQL的关闭 ...
- JDK和Spring中的设计模式
JDK中的设计模式(17) 创建型 1)工厂方法 Collection.iterator() 由具体的聚集类来确定使用哪一个Iterator 2)单例模式 Runtime.getRuntime() 3 ...
- 线程池原理与自定义线程池
- golang mysql连接池原理_redis mysql 连接池 之 golang 实现
1 mysql 连接池代码 package lib import ( "database/sql" "fmt" "strconv" &quo ...
- 惯性导航原理(六)-IMU误差分类(中)-陀螺+加速度计测量模型+误差模型+Allan方差简介
噪声(Noise ) 幅度(RMS)与带宽的平方根成正比 由上图可知,信号总能量就是幅度的平方:功率谱密度对于惯性传感器来说才是本质的参数,它变低了,说明传感器才是真正的好. 通过求平均来降低噪声的幅 ...
- ThreadPoolExecutor线程池原理
ThreadPoolExecutor线程池原理 线程池原理 1. 线程池的简单介绍 1.1 线程池是什么 1.2 线程池解决的核心问题是什么 2. 线程池的实现原理 2.1 线程池的执行流程 2.2 ...
- 线程池的线程复用原理
线程池的线程复用原理 文章目录 线程池的线程复用原理 前言 项目环境 1.什么是线程复用? 2.线程复用的原理 3.线程池执行流程 3.1 流程图 3.2 线程创建的流程 3.3 ThreadPool ...
最新文章
- Amazon EC2云端服务器的使用方法
- 200米外遥测心跳确定身份,五角大楼全新黑科技,比人脸识别更准、伪装也没用...
- htm tt cite em u
- 全球及中国氮肥产业营销趋势与十四五消费规模研究报告2022版
- Qt C++属性类型提供给 QML调用(三)
- GET与POST传递数据的最大长度能够达到多少
- css3 - target
- 基于STM32F4移植W5500官方驱动库ioLibrary_Driver(转)
- 试解析Tomcat运行原理(一)--- socket通讯
- RFID技术为智能轮胎在未来车联网领域的应用奠定了基础
- 全国各省电信及网通DNS大全
- hbuilderX上传微信小程序报错
- 使用Hexo + Gitee Pages搭建个人博客
- 云硬盘备份 | 概览
- 物理机下安装 VMware ESXi 6.7
- Python教程:命令行参数处理
- 精通手游运维的架构体系
- 算法实践-遗传算法GA
- SecureCRT的命令行参数都有哪些
- 【bzoj4292】 [PA2015]Równanie 乱搞
热门文章
- C++(STL):04---智能指针之weak_ptr
- PaperNotes(7)-GANs模式坍塌/训练不稳定
- LeetCode - Easy - 155. Min Stack
- 使用国密浏览器和使用Wireshark进行国密抓包
- C++primer第九章 顺序容器 9.6 容器适配器
- OpenCL 第6课:矩阵转置
- 20个公司绝对不会告诉你的潜规则
- 为何获得风险投资的公司多数倒闭了?
- inline 内联函数详解 内联函数与宏定义的区别
- python读xml文件