线程池概念讲解

2023-09-21 09:24:03

目录

一:基本概念

二:为什么要使用线程池

三:使用线程池有哪些优势

四:线程池应用场景介绍


一:基本概念

                线程池其实就是一种多线程处理形式,处理过程中可以将任务添加到队列然后在创建线程后自动启动这些任务这里的线程就是我们前面学过的线程,这里的任务就是我们前面学过的实现了RunnableCallable接口的实例对象

二:为什么要使用线程池

                  使用线程池最大的原因就是可以根据系统的需求和硬件环境灵活的控制线程的数量,且可以对所有线程进行统一的管理和控制,从而提高系统的运行效率,降低系统运行运行压力;当然了,使用线程池的原因不仅仅只有这些,我们可以从线程池自身的优点上来进一步了解线程池的好处

三:使用线程池有哪些优势

  1. 线程和任务分离,提升线程重用性;
  2. 控制线程并发数量,降低服务器压力,统一管理所有线程;
  3. 提升系统响应速度,假如创建线程的时间为T1,执行任务用的时间T2,销毁线程用的时间T3,那么使用线程池就免去T1和T3的时间;

四:线程池应用场景介绍

  • 网购商品秒杀
  • 云盘文件上传和下载
  • 12306网上购票系统等

        只要有并发的地方、任务数量大或小、每个任务执行时间长或短的都可以使用线程池;  只不过在使用线程池的时候,注意一下设置合理的线程池大小即可

更多推荐

中尺度混凝土二维有限元求解——运行弯曲、运行光盘、运行比较、运行半圆形(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。⛳️座右铭:行百里者,半于九十。📋📋📋本文目录如下:🎁🎁🎁目录💥1概述📚2运行结果🎉3参考文献🌈4Matlab代码实现💥1概述中尺度混凝土二维有限元求解是一种常见的工程分析方法

【Redis面试题(46道)】

文章目录Redis面试题(46道)基础1.说说什么是Redis?2.Redis可以用来干什么?3.Redis有哪些数据结构?4.Redis为什么快呢?5.能说一下I/O多路复用吗?6.Redis为什么早期选择单线程?7.Redis6.0使用多线程是怎么回事?8.Redis持久化⽅式有哪些?有什么区别?9.RDB和AOF

QT之QLineEdit简介

QT之QLineEdit简介QLineEdit是Qt的一个类,用于创建和管理单行的文本输入框。以下是一些常用的QLineEdit函数和它们的用法:1)QLineEdit(QWidget*parent=nullptr)构造函数,创建一个新的QLineEdit对象。parent参数是指向父窗口的指针,如果省略,则QLine

docker容器的设置本地时间(/etc/localtime)和本地时区(/etc/timezone)

本地时区的修改一般情况下,我们启动docker容器时指定了环境变量:-eTZ:=Asia/Ho_Chi_Minh,容器内的时区就会变成东八区,某些软件则会读取该环境变量作为其使用的时区,该环境变量相当于"残缺版"的命令:echo'Asia/Ho_Chi_Minh'>/etc/timezone为什么说残缺版,继续往下看。

STM32 ~ GPIO不同模式之间的区别与实现原理

GPIO全称GeneralPurposeInputOutput,即通用输入/输出。其实GPIO的本质就是芯片的一个引脚,通常在ARM中所有的I/O都是通用的。不过,由于每个开发板上都会设计不同的外围电路,这就造成了GPIO的功能可能有所不同。大部分GPIO都是有复用功能的,比如有些GPIO可能是串口的TX或RX,也可能

【音视频】ffplay源码解析-PacketQueue队列

包队列架构位置对应结构体源码MyAVPacketListtypedefstructMyAVPacketList{AVPacketpkt;//解封装后的数据structMyAVPacketList*next;//下一个节点intserial;//播放序列}MyAVPacketList;PacketQueuetypedef

面试官:Javscript数组的常用方法有哪些?

🎬岸边的风:个人主页🔥个人专栏:《VUE》《javaScript》⛺️生活的理想,就是为了理想的生活!目录一、操作方法增push()unshift()spliceconcat()删pop()shift()splice()slice()改splice()查indexOf()includes()find()二、排序方法

强化学习:实现了基于蒙特卡洛树和策略价值网络的深度强化学习五子棋(含码源)

【强化学习原理+项目专栏】必看系列:单智能体、多智能体算法原理+项目实战、相关技巧(调参、画图等、趣味项目实现、学术应用项目实现专栏详细介绍:【强化学习原理+项目专栏】必看系列:单智能体、多智能体算法原理+项目实战、相关技巧(调参、画图等、趣味项目实现、学术应用项目实现对于深度强化学习这块规划为:基础单智能算法教学(g

STM32F4X UCOSIII 信号量

STM32F4XUCOSIII信号量信号量概念信号量工作机制停车场问题UCOSIII信号量工作机制信号量常用API信号量创建信号量删除释放信号量获取信号量UCOSIII信号量例程在以往的裸机编程中,如果我们需要判断某个事件是否已经发生,通常会使用一个标志位来进行判断,当事件已经发生时,就将该标志位置1,否则就将该标志位

pytorch 入门(一)

本文为🔗小白入门Pytorch内部限免文章参考本文所写记录性文章,请在文章开头注明以下内容,复制粘贴即可⬇️基础版模板⬇️🐳我正在和鲸社区参加“小白入门Pytorch”https://www.heywhale.com/home/activity/detail/64e2ce39e585b8f50bf6c2e7,以下是

frame切换/窗口切换/选择框

frame获取焦点我们操作一个东西就要获得他的焦点才行!!!!例子:fromseleniumimportwebdriverfromselenium.webdriver.common.byimportBywd=webdriver.Chrome()wd.get('https://cdn2.byhy.net/files/se

热文推荐