线程池的优点

线程池的优点

  • 🔎优点1(降低资源消耗)
  • 🔎优点2(提高响应速度)
  • 🔎优点3(可管理性)
  • 🔎结尾

🔎优点1(降低资源消耗)

有了线程池后,创建线程不再是向系统申请,而是从线程池中拿
当线程不再使用后,再还给线程池

线程的创建,虽然相较于进程是轻量的,但是如果进行频繁的创建,那么开销也是不可忽略的


🔎优点2(提高响应速度)

直接从线程池中获取线程要比从系统创建线程更高效

那么为什么从线程池获取就会比在系统中创建要高效呢?

因为从线程池中获取属于用户态操作
而从系统中创建涉及到用户态内核态之间的切换,但真正的创建是在内核态完成的

举个栗子🥝

一个操作系统 = 内核 + 应用程序
内核相较于应用程序较少

我们可以将内核想象成银行的工作人员,将应用程序想象成办理业务的人
一个内核(银行工作人员)对应多个应用程序(办理业务的人)
如果我们去办理业务,需要用到身份证复印件,此时我们恰好没带复印件,只带了身份证

那么有2种选择:
选择(1):将身份证交给工作人员,让工作人员去打印复印件
选择(2):自己拿着身份证去大厅打印身份证

在这里插入图片描述
如果是用户自己去拿着身份证复印,那他复印完很快就回来了(用户态)
纯用户态操作,时间是可控的

但是交给工作人员去复印,就需要进行等待(内核态)
因为工作人员有可能在复印身份证时,顺便上了个厕所,顺便接了杯水,顺便…
内核态操作,时间不可控

通过上面这个栗子,相信大家就明白了为什么直接从线程池中获取线程要比从系统创建线程更高效


🔎优点3(可管理性)

通过统一的分配,监控,避免大量的线程间因互相抢占资源导致的阻塞现象

🔎结尾

创作不易,如果对您有帮助,希望您能点个免费的赞👍
大家有什么不太理解的,可以私信或者评论区留言,一起加油

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/5728.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

47了解公有云平台 GCP 的基本服务和使用方法,包括 Compute Engine、Cloud Storage

GCP Compute Engine Google Cloud Platform (GCP) 的 Compute Engine 是一个可扩展的云计算平台,可以让您快速启动虚拟机实例来运行您的应用程序。它提供了一种灵活的方式来管理您的计算资源,并支持多种操作系统、应用程序框架和开发工具。以下是一些基本…

Leetcode.939 最小面积矩形

题目链接 Leetcode.939 最小面积矩形 Rating : 1752 题目描述 给定在 xy平面上的一组点,确定由这些点组成的矩形的最小面积,其中矩形的边平行于 x 轴和 y 轴。 如果没有任何矩形,就返回 0。 示例 1: 输入&#xff1…

centos7安装rabbitmq服务

centos7安装rabbitmq服务 第一 软件包准备 1.erlang依赖包 2.rabbitmq安装包 第二 安装rabbitmq 1.安装依赖 rpm -ivh erlang-21.3-1.el7.x86_64.rpmyum install socat -y2.安装rabbitmq服务 rpm -ivh rabbitmq-server-3.8.8-1.el7.noarch.rpm3.启动rabbitmq服务 system…

一次线上MySQL vCPU飙升引发的思考

vCPU飙升 在一个漆黑的深夜,MySQL丛库的vCPU在做一个三点任务的时候突然飙升,从MySQL面板中可以查到是以下查询导致的。 表数据及相关索引说明: hotel_info_tbl: 数据量:100w,id 为 primary keydynamic_cache_task_…

二项式反演

二项式反演 在很多情况下,“恰好”往往是不好求的,因为恰好意味着"≤\leq≤"并且"≥\geq≥",需要进行很多限制,破坏了情况之间的独立性。 二项式反演则通过一定手段,使得限制"≤\leq≤&quo…

谷粒商城笔记+踩坑(21)——提交订单。原子性验令牌+锁定库存

目录 1、环境准备 1.1、业务流程 1.2、Controller 层编写下单功能接口 1.3、订单提交的模型类 1.4、前端页面 confirm.html 提供数据 2、提交订单业务完整代码 3、原子性验令牌:令牌的对比和删除保证原子性 4、初始化新订单,包含订单、订单项等信…

C++ : C++基础 :从内存的角度看 char[]和char*

char*和char[]区别1:数据在内存中的存储2:char*和 char[]分析3:char* p2 和 char p1[]3.1 修改指针所指向的地址4: string转char*5: char * 转string5.1 to_string()用法1:数据在内存中的存储 栈:就是在那些由编译器在…

PYQT 自带的 Pyrcc 系统的使用,PyInstaller对PYQT程序进行打包,不能打包背景图片,图标等解决办法

问题 使用 PyInstaller 对程序进行打包,不能打包背景图片。打包后的软件可以正常运行,但涉及到图片相关的资源全部不显示。 问题分析 当使用Python PyInstaller对程序进行打包时,如果程序中涉及到背景图片,会出现无法打包背景图…

第十一章 指针

第十一章 指针 目录一. 指针变量二. 取地址运算符和间接寻址运算符三. 指针赋值一. 指针变量 概述   指针就是地址,而指针变量就是存储地址的变量。指针的大小都是相同的。32位机器一个地址是4个byte。64位机器一个…

【ChatGPT】这是一篇ChatGPT写的关于Python的文章

文章目录Python基础语法教学1、变量2、数据类型3、运算符4、条件语句5、循环语句更高级的概念1、函数2、模块3、面向对象编程ChatGPT的记录Python基础语法教学 Python是一种高级编程语言,它被广泛应用于计算机科学领域、数据分析和人工智能等各种领域。在学习Pytho…

聊聊MyBatis缓存机制(一)

前言 Mybatis是常见的Java数据库访问层框架,虽然我们在日常的开发中一般都是使用Mybatis Plus,但是从官网信息可以知道,其实Mybatis Plus只是让开发者在使用上更简单,并没有改动核心原理。在日常工作中,大多数开发者都…

HTML5 <!DOCTYPE> 标签

实例 <!DOCTYPE> 声明非常重要&#xff0c;它是一种标准通用标记语言的文档类型声明&#xff0c;通过该标签&#xff0c;浏览器能够了解HTML5文档正在使用的HTML规范&#xff0c;<!DOCTYPE> 声明是HTML5文档的起始点&#xff0c;也就是说它必须位于HTML5文档的第一…

《SpringBoot》第03章 自动配置机制(二) 根注解@SpringBootApplication

前言 之前介绍到了把启动类封装成BeanDefinition注入进IOC容器&#xff0c;那么这个启动类就会跟普通的bean一样在refresh()中被实例化&#xff0c;那么显而易见作为启动类这个实例化并不简单&#xff0c;肯定会存在一些特殊处理&#xff0c;那么就需要研究一下其注解SpringBo…

AI只会淘汰不进步的程序员

最近AI界的大新闻有点多&#xff0c;属于多到每天很努力都追不上&#xff0c;每天都忙着体验各种新产品或申请试用新产品。各种自媒体肯定也不会放过这个机会&#xff0c;AI取代程序员的文章是年年有&#xff0c;今天特别多。那么AI到底会不会取代程序员的工作呢&#xff1f;先…

[chapter4][5G-NR][传输方案]

前言&#xff1a; 多天线传输的基本过程传输方案 前面见过数据加扰&#xff0c;调制&#xff0c;层映射的一些基本原理&#xff0c;算法。 这里重点讲一下传输方案 目录&#xff1a; 1&#xff1a; 下行传输方案 2&#xff1a; 上行传输方案 3&#xff1a; 资源块映射 备注&…

.net开发安卓从入门到放弃 最后的挣扎(排查程序闪退问题记录-到目前为止仍在继续)

安卓apk闪退问题排查记录logcat程序包名先看日志&#xff08;以下日志是多次闪退记录的系统日志&#xff0c;挑拣几次有代表性的发上来&#xff09;最近一次闪退adb shell tophelp一个demo说明adb shell dumpsys meminfo <package_name>ps&#xff1a;写在前面&#xff0…

训练中文版chatgpt

文章目录1. 斯坦福的模型——小而低廉&#xff1a;Alpaca: A Strong Open-Source Instruction-Following Model2. Meta 模型&#xff1a;LLaMA&#xff1a;open and efficient foundation language models3.ChatGLM4.斯坦福开源机器人小羊驼Vicuna&#xff0c;130亿参数匹敌90%…

SSM+LayUi实现的学籍管理系统(分为管理员、教师、学生三个角色,实现了专业管理,班级管理,学生管理,老师管理,课程管理,开课管理以及用户管理等)

博客目录jspservletmysql实现的停车场管理系统实现功能截图系统功能使用技术完整源码jspservletmysql实现的停车场管理系统 本系统是一个servlet原生框架实现的停车场管理系统&#xff0c;总共分为两个角色&#xff0c;普通用户和管理员&#xff0c;实现了用户管理、停车信息管…

Linux基础IO

本篇博客来讲述Linux中的新一模块--文件IO&#xff0c;我们来做简单的介绍和陈述。 在笔者之前的文章之中&#xff0c;已经对C语言中的文件操作做了简要介绍&#xff0c;我们旧事重提&#xff0c;再次进行一个简要的回顾。 目录 1.文件的操作 1.1打开文件 1.2向文件写入数…

Java多态

目录 1.多态是什么&#xff1f; 2.多态的条件 3.重写 3.1重写的概念 3.2重写的作用 3.3重写的规则 4.向上转型与向下转型 4.1向上转型 4.2向下转型 5.多态的优缺点 5.1 优点 5.2 缺点 面向对象程序三大特性&#xff1a;封装、继承、多态。 1.多态是什么&#xff1…