当前位置: 首页 > news >正文

并发-线程池

阻塞队列

笔记地址
点击进入

队列:先进先出
限定在一端进行插入,一端进行删除
出队为队头,入队为队尾

阻塞队列 BlockingQueue

在这里插入图片描述

Queue接口继承Collection接口添加元素:add(),队列满了对抛出异常offer(),队列满了不会抛出异常,返回false,不会抛异常删除元素:remove(),有元素则返回移除的元素,为空的话则抛出异常poll(),有元素则返回移除的元素,为空的话则返回null获取队首元素:element():抛异常peek():不抛异常

BlockQueue:
多了两个方法:会进行阻塞
put()
take()

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

线程池

1:如何设置线程池的核心线程数和最大线程数4
我们对线程池负责执行的任务分为三种情况:
CPU密集型任务:比如找出1-1000000的素数:理论是CPU核数+1
IO密集型任务:比如文件io 网络io
混合任务
我们可以按以下公式进行【理论】:
线程数 = CPU核心数*(1+线程等待时间/线程运行总时间)
现实工作中经常用压测的方法来估算
工具:Jmeate、PostApi
2:线程池下
在这里插入图片描述
线程池的五种状态

在这里插入图片描述

running
shutdown:会把队列中的任务处理完
stop:不会处理队列中的任务
tidying:所有的线程停掉之后就会变成这个状态
terminated:

在这里插入图片描述

http://www.lryc.cn/news/138927.html

相关文章:

  • openCV实战-系列教程5:边缘检测(Canny边缘检测/高斯滤波器/Sobel算子/非极大值抑制/线性插值法/梯度方向/双阈值检测 )、原理解析、源码解读
  • 【数据仓库】Linux、CentOS源码安装Superset
  • 高并发网站的负载均衡设计
  • Unity C# 之 Task、async和 await 、Thread 基础使用的Task的简单整理
  • 介绍 Docker 的基本概念和优势,以及在应用程序开发中的实际应用。
  • 如何提取视频的音频到手机?这个音频提取方法很简单
  • 【算法刷题之哈希表(2)】
  • 如何创建和销售在线健身业务
  • 使用IIC进行多数据读取测试
  • drools8尝试(加单元测试)
  • Web3和去中心化:互联网的下一个演化阶段
  • stm32 之20.HC-06蓝牙模块
  • [技术杂谈]macOS上todesk无法远程操作鼠标键盘
  • 【C++设计模式】用简单工厂模式实现按汽车重量输出汽车类型
  • 【Ubuntu20.04安装Nvidia驱动、CUDA和CUDNN】
  • [Python进阶] 类的设计模式
  • 设计模式 07 桥接模式
  • linux系统(centos、ubuntu、银河麒麟服务、uos、deepin)判断程序是否已安装,通用判断方法:使用所有应用和命令的判断
  • 机器学习各算法优缺点汇总
  • 手把手教你部署Jenkins教程,小白也能学会(多图预警)!
  • 一种IDEA疑难杂症的解决办法
  • TikTok小店玩法有哪些?一起来玩转TiKTok!
  • Mongodb 集合插入文档自动生成ObjectId
  • C# .aspx网页获取RFID读卡器HTTP协议提交的访问文件Request获得卡号、机号,Response回应驱动读卡器显示响声
  • Kali Linux 2023.3 发布
  • 如何用Python实现从pdf文件精准抓取数据生成数据库!
  • 科技资讯|苹果Apple Watch新专利,可根据服装、表带更换表盘颜色
  • 猜数游戏-Rust版
  • 从零起步:学习数据结构的完整路径
  • 如何在浏览器中启用 WebGL 以使用 HTML5 3D 查看器