前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java为什么要使用线程池?

Java为什么要使用线程池?

原创
作者头像
Eulogy
发布于 2025-03-26 15:03:30
发布于 2025-03-26 15:03:30
780
举报
文章被收录于专栏:JavaJava

前言

之前对于Java线程池的理解,一直停留在:对于Java中的多线程机制来说,如果不使用线程池的话,线程的使用就会变得杂乱无章。这一步。一直没有深入去理解为什么其更深层次的原因,今天来仔细思考一下,并记录我自己的理解。

1.对线程的管理更加的规范化

如果不使用线程池的话,对于一个系统来说,最多可以使用多少个线程,每个线程最多可以被占用多长时间避免别的任务产生“饥饿”问题都是不好被控制的,可能需要自己编写相应的逻辑来控制,但是如果使用了线程池的话,我就可以规定这个系统所使用的线程都不能自己创建,都只能从这个线程池中来获取,所以我可以使用这个线程池对这个系统会用到的所有线程进行一个统一的管理。

包括以下几个部分的管理:

1.限制最大的线程数量:,防止系统可以获得的线程数量过多,从而导致CPU的大部分时间都用在了切换线程上,而用在处理线程中的任务上的时间所剩无几,降低了效率。同时,如果不限制最大线程数量的话,很有可能导致OOM(OUT OF MEMORY)问题,因为每个线程都是在内存中开辟一个线程栈(Java中的栈空间是JVM控制的,总共就只有那么大。)还会创建一个线程控制块的。

2.代替手动管理: 对于一个线程来说,它的创建、启动、关闭如果全靠程序员去手动管理的话,手动管理起来会非常复杂,还有可能管理不当发生死锁的问题,所以线程池封装了线程管理的机制,代替程序员去更好地管理线程。

3.

2.降低创建线程和销毁线程的开销

试想一下,如果没有线程池,那么我每次想要完成一个任务都要创建一个线程,然后在该任务完成之后再将其销毁。

但是要知道线程在创建的时候计算机会在JVM给它规定的线程栈空间中挑出一块合适的内存分配给它,并且还会创建一个线程控制块、执行系统调用指令、在操作系统的线程控制表里维护线程队列......这些操作都会耗费CPU的时间(这些操作也可以叫做线程自身的上下文)。并且在销毁的时候也是,OS 需要释放它占用的栈内存、线程控制块、内核对象。这些都会需要CPU的时间。很浪费性能。

而使用了线程池之后,一切就不一样了。线程池创建 固定数量的线程,当有任务到来时,直接复用现有线程,而不是每次都创建新线程。这样就避免了频繁的系统调用、内存分配、CPU 上下文切换。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
h3c交换机配置(下)
配置顺序:根据配置规则的先后顺序进行规则匹配 自动排序:根据“深度优先”的顺序进行规则匹配。即越详细的越最先匹配。
py3study
2020/01/11
2K0
cisco H3c 交换机配置远程ssh
ssh对于现在网络或远程管理就很常见,所以现在远程telnet或ssh对于管理员远程管理就方便的多了。在远程管理中的安全也尤其重要,一般就密码,用户名和密码和密钥管理登录。
py3study
2020/01/17
1.6K0
交换安全包含哪些技术?
在某些场景中,我们可能需要监控交换机特定端口的入站或出站报文,或者需要针对特定的流量进行分析,例如上图中,我们期望抓取PC1收发的报文并进行分析,那么便可以在交换机的GE0/0/3口接一个监控PC,在监控PC上安装协议分析软件,然后在交换机上部署端口镜像,将GE0/0/2的入、出站流量镜像到GE0/0/3口上来,接下来我只要在监控PC上通过协议分析软件查看报文即可。
网络技术联盟站
2023/03/13
5160
交换安全包含哪些技术?
H3C基础配置篇
        最近,入手一台H3CS3600V2-SI鼓捣了大半个月终于是按照BOSS的要求配好.大部分时间都花在查官方文档和售后Email上,效率极低.如果基础知识,扎实感觉有一个星期完全足够了!下面就来总结一下:
py3study
2020/01/15
8780
思科N3K交换机的芯路历程
作者简介:张渐修,任职于上海同悦信息科技有限公司担任市场分析高级工程师,从事交换机的市场推广工作。
SDNLAB
2018/08/16
1.8K0
思科N3K交换机的芯路历程
H3C的命令
# ifconfig eth0 <ip address> netmask <netmask> ;设置IP地址
py3study
2020/01/06
5940
H3C交换机、路由器、防火墙常用指令,详细分类,一篇整理!
ICT系统集成阿祥
2025/05/27
3800
H3C交换机、路由器、防火墙常用指令,详细分类,一篇整理!
实战H3C交换机升级固件
一、前言 通常情况下,交换机是非常稳定的,但只要是软件就会有bug,所以设备厂家都会提供固件的更新,比如我使用的华三交换机,就出现了一些奇奇怪怪的问题,随即想到升级固件试一下。
王忘杰
2022/09/22
2.3K0
实战H3C交换机升级固件
H3C 低端交换机配置脚本
1、给设备命名 sysname h3c-1F 2、 配IP地址及vlan描述 interface Vlan-interface1 ip address 192.168.1.2 24 description wangguanpingtai quit 2.NTP时间同步 clock timezone GMT add 8 ntp-service unicast-server 202.120.2.101 3、 缺省网关 ip route-static 0.0.0.0 0.0.0.0 192.168.1.1 回程
网络技术联盟站
2023/03/13
9970
H3C 低端交换机配置脚本
h3c路由器配置命令大全_h3c命令手册
6、 port link-type Access|Trunk|Hybrid 设置端口访问模式
全栈程序员站长
2022/11/02
5K0
全网最优质的H3C设备命令大全
最近咨询H3C问题的朋友挺多的,大部分是命令不太熟悉,今天瑞哥进行整理大的整理,分类整理,希望大家能够收藏起来,以备不时之需!
网络技术联盟站
2021/03/29
1.2K0
收藏!思科、华为、H3C交换机巡检命令全收录
11、show cdp neighbors detail:查看邻接cisco设备详细信息
网络工程师笔记
2022/10/31
2.1K0
华为交换机OSPF对接思科交换机EIGRP,牛逼配置!
思科交换机OSPF分别与华为交换机OSPF以及思科交换机EIGRP进行路由交互,间接实现华为交换机OSPF对接思科交换机EIGRP的功能。
网络技术联盟站
2023/03/01
9050
华为交换机OSPF对接思科交换机EIGRP,牛逼配置!
Cisco交换机与路由器命令总结
show version    查看版本及引导信息  show running-config    查看运行设置  show startup-config    查看开机设置  show interface g0/1    显示端口信息  show ip router      显示路由信息  show clock      查看系统时钟  show log        查看日志  show interface counters    查看接口流量  show interface description  查看端口的连接状态与描述  show interface status  查看端口的链接状态、所属vlan以及速率双工 show cdp neighbors  查看CDP邻居  show processes cpu  查看设备CPU使用率    show vlan br    查看vlan数据库    show ip int brief //查看所有端口状况 show int des    //查看所有端口的描述 show int f0/1  //查看f0/1接口状态 show run int f0/1    //查看f0/1配置状况 show run int valn 180    //查看Vlan 的配置状态 show vtp stauts  //查看vtp 的状态 show clock      //查看交换机当前的时间 show ntp stauts    //查看ntp 是否同步 show ip ssh  //查看SSH配置
星哥玩云
2022/07/26
1K0
华三(h3c)交换机操作命令详解vlan切换
程序员都很懒,你懂的! 十年生死两茫茫,写程序,到天亮。   千行代码,Bug何处藏。    纵使上线又怎样,朝令改,夕断肠。    领导每天新想法,天天改,日日忙。   相顾无言,惟有泪千行。   每晚灯火阑珊处,夜难寐,又加班。 闲话少说,直接上代码: 华三交换机操作命令 输入用户名回车,输入密码后回车。再输入sys进入系统模式。 或者输入登录后,输入system-view进入系统模式。 显示/查看vlan display brief interface 显示vlan列表后,进入
业余草
2019/01/21
5.3K0
华为交换机常用display命令
dis temperature all #查看设备温度,各模块当前的温度应该在上下限之间,即“Current”的值在“Lower”和“Upper”之间。
一棵生菜的魅力
2022/10/10
7.2K0
交换机CPU使用率高问题定位
如果网管需要主动监测CPU使用率,可通过OID:1.3.6.1.4.1.2011.5.25.31.1.1.1.1.5获取。
网络技术联盟站
2020/06/01
2.6K0
SDN 技术指南(二):OpenFlow
OpenFlow 最早由斯坦福大学提出,目前知识产权由开放网络基金会(Open Networking Foundation,ONF)持有。
RiboseYim
2018/01/13
2.6K0
h3c交换机重启_h3c交换机清空配置命令
H3C CAS云计算管理平台融合了华三通信在网络安全领域的积累,通过对IEEE 802.1Qbg(EVB)标准的支持,为虚拟机在安全、可视、可监管的环境下运行奠定了基础。下面是小编收集的h3c交换机清空配置命令,希望大家认真阅读!
全栈程序员站长
2022/08/28
1.6K0
交换机升级 h3c_520
当前用的是笔记本一台(ip 22.72.42.155),装有虚拟机linux (22.72.42.154),开通ftp服务器;
py3study
2020/01/08
8290
相关推荐
h3c交换机配置(下)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档