一、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线程池中的设计模式相关推荐

  1. python线程池原理_Python定时器线程池原理详解

    这篇文章主要介绍了Python定时器线程池原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 定时器执行循环任务: 知识储备 Timer(int ...

  2. 数据库连接池原理及常用连接池介绍

    一.背景介绍 1.1 什么是连接池 数据库连接池负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个. 1.2 为什么要使用连接池 数据库连接是一种关键的有 ...

  3. 连接池原理介绍+常用连接池介绍

    下面以访问MySQL为例,执行一个SQL命令,如果不使用连接池,需要经过哪些流程. 不使用数据库连接池的步骤: TCP建立连接的三次握手 MySQL认证的三次握手 真正的SQL执行 MySQL的关闭 ...

  4. JDK和Spring中的设计模式

    JDK中的设计模式(17) 创建型 1)工厂方法 Collection.iterator() 由具体的聚集类来确定使用哪一个Iterator 2)单例模式 Runtime.getRuntime() 3 ...

  5. 线程池原理与自定义线程池

  6. golang mysql连接池原理_redis mysql 连接池 之 golang 实现

    1 mysql 连接池代码 package lib import ( "database/sql" "fmt" "strconv" &quo ...

  7. 惯性导航原理(六)-IMU误差分类(中)-陀螺+加速度计测量模型+误差模型+Allan方差简介

    噪声(Noise ) 幅度(RMS)与带宽的平方根成正比 由上图可知,信号总能量就是幅度的平方:功率谱密度对于惯性传感器来说才是本质的参数,它变低了,说明传感器才是真正的好. 通过求平均来降低噪声的幅 ...

  8. ThreadPoolExecutor线程池原理

    ThreadPoolExecutor线程池原理 线程池原理 1. 线程池的简单介绍 1.1 线程池是什么 1.2 线程池解决的核心问题是什么 2. 线程池的实现原理 2.1 线程池的执行流程 2.2 ...

  9. 线程池的线程复用原理

    线程池的线程复用原理 文章目录 线程池的线程复用原理 前言 项目环境 1.什么是线程复用? 2.线程复用的原理 3.线程池执行流程 3.1 流程图 3.2 线程创建的流程 3.3 ThreadPool ...

最新文章

  1. Amazon EC2云端服务器的使用方法
  2. 200米外遥测心跳确定身份,五角大楼全新黑科技,比人脸识别更准、伪装也没用...
  3. htm tt cite em u
  4. 全球及中国氮肥产业营销趋势与十四五消费规模研究报告2022版
  5. Qt C++属性类型提供给 QML调用(三)
  6. GET与POST传递数据的最大长度能够达到多少
  7. css3 - target
  8. 基于STM32F4移植W5500官方驱动库ioLibrary_Driver(转)
  9. 试解析Tomcat运行原理(一)--- socket通讯
  10. RFID技术为智能轮胎在未来车联网领域的应用奠定了基础
  11. 全国各省电信及网通DNS大全
  12. hbuilderX上传微信小程序报错
  13. 使用Hexo + Gitee Pages搭建个人博客
  14. 云硬盘备份 | 概览
  15. 物理机下安装 VMware ESXi 6.7
  16. Python教程:命令行参数处理
  17. 精通手游运维的架构体系
  18. 算法实践-遗传算法GA
  19. SecureCRT的命令行参数都有哪些
  20. 【bzoj4292】 [PA2015]Równanie 乱搞

热门文章

  1. C++(STL):04---智能指针之weak_ptr
  2. PaperNotes(7)-GANs模式坍塌/训练不稳定
  3. LeetCode - Easy - 155. Min Stack
  4. 使用国密浏览器和使用Wireshark进行国密抓包
  5. C++primer第九章 顺序容器 9.6 容器适配器
  6. OpenCL 第6课:矩阵转置
  7. 20个公司绝对不会告诉你的潜规则
  8. 为何获得风险投资的公司多数倒闭了?
  9. inline 内联函数详解 内联函数与宏定义的区别
  10. python读xml文件