线程池的工作原理

article/2025/10/7 10:24:25

线程池,就是存放线程的池子,池子里存放了很多可以复用的线程

作用:

1.对线程进行统一管理

2.降低系统资源消耗。通过复用已存在的线程,降低线程创建和销毁造成的消耗

3.提高响应速度。当有任务到达时,无需等待新线程的创建便能立即执行

4.提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗大量系统资源,还会降低系统的稳定性,使用线程池可以进行对线程进行统一的分配、调优和监控

七大参数:

1.核心线程数

2.最大线程数

3.线程空闲时的存活时间

4.线程空闲时的存活时间的时间单位

5.任务缓存队列,用来存放等待执行的任务

6.线程工厂,创建新线程时使用的线程工厂

7.任务拒绝策略

当阻塞队列满了,且线程池中的线程数达到maximumPoolSize,如果继续提交任务,就会采取任务拒绝策略处理该任务,线程池提供了4种任务拒绝策略:

* AbortPolicy:丢弃任务并抛出RejectedExecutionException异常,默认策略;

* CallerRunsPolicy:由调用execute方法的线程执行该任务;

* DiscardPolicy:丢弃任务,但是不抛出异常;

* DiscardOldestPolicy:丢弃阻塞队列最前面的任务,然后重新尝试执行任务(重复此过程)

常用的线程池

1.newFixedThreadPool线程池 (固定大小线程池)

由参数可知 核心线程 和额外线程值是相同的,额外线程被回收时间是0,采用的是无界队列。默认采用的拒绝策略为AbortPolicy。分析得 核心线程和额外线程处理不过来得情况,会一直往队列里面放任务

可能存在的问题:队列过大 导致内存溢出 OOM

 2.将额外线程设置成最大

当任务量足够大,超过队列。交由额外线程处理。就会创建过多线程

可能存在问题:特殊场景下,线程过多可能会导致系统奔溃。cpu负载过高

 


http://chatgpt.dhexx.cn/article/D0wVHVTf.shtml

相关文章

线程池核心原理分析

一、基础概念 线程池是一种多线程开发的处理方式,线程池可以方便得对线程进行创建,执行、销毁和管理等操作。主要用来解决需要异步或并发执行任务的程序 谈谈池化技术 简单点来说,就是预先保存好大量的资源,这些是可复用的资源,你需要的时候给你。对于…

线程池原理(讲的非常棒)

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

服务器常见的网络攻击以及防御方法

网络安全威胁类别 网络内部的威胁,网络的滥用,没有安全意识的员工,黑客,骇客。 木马攻击原理 C/S 架构,服务器端被植入目标主机,服务器端通过反弹连接和客户端连接。从而客户端对其进行控制。 病毒 一…

传奇服务器容易受到什么攻击,怎么防御攻击?

有兄弟问明杰,说自己打算开服,听说攻击挺多的,就是想先了解一下开传奇用的服务器最容易受到什么类型的攻击,如果遇到了又改怎么防御呢?带着这个问题,明杰跟大家详细的说一下,常见的开区时候遇到…

传奇服务器常见的网络攻击方式有哪些?-版本被攻击

常见的网络攻击方式有哪些?常见的网络攻击方式 :端口扫描,安全漏洞攻击,口令入侵,木马程序,电子邮件攻击,Dos攻击。 1.传奇服务器端口扫描: 通过端口扫描可以知道被扫描计算机开放了…

服务器被ddos攻击的处置策略

如果您的服务器遭到了DDoS攻击,以下是一些可以采取的措施: 使用防火墙和安全组进行限制:限制服务器的流量以防止进一步的攻击。 升级服务器资源:为了应对更高的流量,可以升级服务器的内存,处理器等资源。 安…

如何从根本上防止服务器被攻击

随着互联网的发展,服务器成为了企业和个人网络应用的重要基础设施。但是,随之而来的网络安全威胁也在不断增加,服务器安全问题也成为了影响企业信息安全的重要因素。针对这种情况,服务器安全防御变得尤为重要。   服务器安全防御…

来一起学怎么攻击服务器吧!!!

我们上线了两门新课。 一门教你漏洞的原理和攻击代码怎么写。 一门会教你木马的制作。 一如既往地,新课刚上线都是限时优惠状态,感兴趣的同学用力点击下面这两个妹子吧: Kali 渗透测试 - 服务器攻击实战 Kali 渗透测试 - 后门技术实战 提示&a…

网站服务器怎么做防御?遇到攻击如何解决?

每个网站都可能遇到网络攻击,这是正常现象。攻击可能来自密码错误、防火墙配置错误、病毒软件、空闲端口等。大量的网络攻击在竞争激烈的行业或企业中更为常见。 目前需要有一套完整的安全策略来保护流浪数据,防止网站服务器被攻击。完善可靠的安全策略…

服务器被攻击怎么办?常见处理方法

对于企业用户来,最害怕的莫过于服务器遭受攻击了,比如被大量登录、网页被篡改、数据库被非法登录、网络日志异常等,尽管运维人员在此之前做好了全面的防范工作,但攻击再所难免,如何在服务器遭受攻击后能够迅速有效的处…

服务器被DDoS攻击,怎么破?

文章目录 前言网站受到DDoS的症状判断是否被攻击查看网络带宽占用查看网络连接TCP连接攻击SYN洪水攻击 防御措施TCP/IP内核参数优化iptables 防火墙预防防止同步包洪水(Sync Flood)Ping洪水攻击(Ping of Death)控制单个IP的最大并…

黑客攻击入侵服务器的6种常见方式

服务器被入侵既有一定的偶然性,也有一定的必然性,网络上有两种黑客,一种是漫无目的的漫天撒网形式的黑客,一种是目标明确只入侵指定目标的黑客,我们称前一种黑客叫菜鸟黑客,称后一种黑客叫高级黑客。简单的…

web服务器攻击的八种方式

随着互联网的高速发展,网络走进了千家万户,同时也有很大一部分人架设起了自己的网站。继而不安分的黑客们,又将目光对准了服务器攻击这个方式,从而破坏或取得服务器的管理权限。本文将主要讲述针对web服务器攻击的八种方式。 1、…

Webpack--模块热替换(HMR)

一、概述 (1)live reload 只要检测到代码改动就会自动重新构建,然后触发网页刷新 (2)webapack中的模块热替换 可以让代码在页面不刷新的前提下得到最新的改动,甚至不需要重新发起请求就能看到更新后的效…

HMR API及其原理

很久之前,遇到一个面试题:【在代码变更之后,如何实时看到更新后的页面效果呢?】 在传统的方案中,我们可以通过 live reload 也就是自动刷新页面的方式来解决的,不过随着前端工程的日益庞大,开发…

webpack实践之路(七):模块热替换HMR

HMR 模块热替换(Hot Module Replacement 或 HMR)允许在运行时更新各种模块,而无需进行完全刷新。 HMR主要是通过以下几种方式,来显著加快开发速度: 保留在完全重新加载页面时丢失的应用程序状态。只更新变更内容,以节省宝贵的开…

【Webpack 性能优化系列(1) - HMR 热模块替换】

webpack系列文章: 【Webpack 性能优化系列(9) - 多进程打包】极大的提升项目打包构建速度!!!【Webpack 性能优化系列(8) - PWA】使用渐进式网络应用程序为我们的项目添加离线体验【Webpack 性能优化系列(7) - 懒加载和预加载】【…

hmr webpack 不编译_Webpack HMR 热更新实现原理深入分析

概述 在使用 Webpack 构建开发期时,Webpack 提供热更新功能为开发带来良好的体验和开发效率,那热更新机制是怎么实现的呢? 代码实现 Webpack 配置添加 HotModuleReplacementPlugin 插件 new webpack.HotModuleReplacementPlugin({ // Options…

webpack4.0核心概念(十)—— HMR(热模块替换-局部刷新)

HMR:当修改一个js或者css的时候,只刷新修改的内容,不进行整个页面的刷新。 css的HMR——只支持开发环境 不能使用mini-css-extract-plugin需要使用style-loader,因为它不支持抽离出的css,需要用style-loader ① 在webpack.config.js中配置 …

前端工程化——Livereload和HMR、本地开发服务器

目录 本地开发服务器解决的问题 动态构建 Mock服务 动态构建 源码改动之后,浏览器应该在何时获取重新编译后的资源? Livereload和HMR 有了构建系统的支持,前端开发人员可以使用诸多有利于开发和维护的技术进行源代码编写。然而如果在开…