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

【c++】【线程池】线程池模式

【c++】【线程池】线程池模式

1 L/F领导者与跟随者模式

  • 概述:在此模式中,线程池中的线程分为:领导者(Leader),跟随者(Follower)和工作者(Processor)
    • 领导者线程:负责监听和接收外部事件或请求,任何时刻线程池只有一个领导者线程。
    • 跟随者线程:等待被提升为领导者。
    • 工作者 :处理事件或请求,处理完成后将自身设置为跟随者。
  • 工作流程:当有新的事件到来时,领导者(Leader)负责接收事件并分离事件,领导者(Leader)将自身设置为工作者(Processor)并从跟随者线程中选择一个提升为新的领导者,继续监听新的事件。工作者(Processor)线程处理该事件,处理完成后将自己转为跟随者状态。

2半同步/半异步模式

在这里插入图片描述

  • 概述:该模式将线程池划分为三个层次:
    • 同步服务层:负责处理 I/O 事件的监听和分发。
    • 排队层:用于存放待处理的任务。
    • 异步服务层:从队列中取出任务并进行处理。
  • 工作流程:主线程(同步服务层)负责监听 I/O 事件,并将事件封装为任务放入同步队列。工作线程(异步服务层)从同步队列中取出任务并处理。
  • ps:可以理解为两个活动过程
    • 往同步队列中添加任务的过程–>理解为生产者
    • 从同步队列中取出任务的过程–>理解为消费者

第一层是同步服务层, 处理来自User的任务请求, 上层的请求可能是并发的, 这些请求并不会马上被处理, 而是会被放入到第二层的同步队列中。
第二层的同步队列会调用第三层的异步服务层, 从而执行任务, 并且异步服务层会响应来自第二层的同步队列的请求, 从而保证任务的执行顺序。
第三层是异步服务层, 会有若干个线程同时处理排队层中的任务。
在这里插入图片描述
参考:https://blog.csdn.net/qq_51931826/article/details/145468543

相关文章:

【c++】【线程池】线程池模式

【c】【线程池】线程池模式 1 L/F领导者与跟随者模式 概述:在此模式中,线程池中的线程分为:领导者(Leader),跟随者(Follower)和工作者(Processor) 领导者线…...

Next.js 学习-1

Next.js学习 引用:https://www.nextjs.cn/learn/basics/create-nextjs-app 先试试水吧,正好dify用的这个构建的前端项目。 使用 如果您尚未安装 Node.js,请 从此处安装。要求 Node.js 10.13 或更高版本。 好吧得用新的了,记得…...

bat命令在b站下载单个音视频

文章目录 单个音频第一行代码第二行代码下载后效果图 单个视频第一行代码第二行代码第三行代码第四行代码第五行代码下载后效果图 单个音视频第一行代码第二行代码第三行代码第四行代码第五行代码第六行代码下载后的效果图 单个音频 chcp 65001 you-get -o D:\Files\pydownloa…...

函数中的形参和实参(吐槽)

def greet_user(user_name):print(f"Hello,{user_name.title()}!")greet_user("zhangsan") 在以上函数中,user_name是形参, 在greet_user("zhangsan")中,值“zhangsan”是实参。这本身没什么大问题。 但是这…...

运维Ansible面试题及参考答案

目录 简述 Ansible 的工作原理,它是如何实现对远程主机管理的? Ansible 是基于什么语言开发的?这门语言的特性对 Ansible 的功能实现有哪些帮助? 解释 Agentless 在 Ansible 中的含义,与基于 Agent 的自动化工具相比,优势体现在哪? Ansible 中的 Inventory 文件是什…...

3、优先级翻转问题

FreeRTOS优先级翻转是当高优先级任务因等待低优先级任务占用的资源(如互斥锁)被阻塞,而中优先级任务趁机执行,导致高优先级任务无法及时运行的调度异常。 场景示例: 任务优先级:存在三个任务,优…...

python 进程池的基本使用

Python 进程池:Pool任务调度实现 在现代计算机系统重,处理器核心数量的增加为并行计算提供了强大的硬件基础。Python的 multiprocessing 模块中的进程池(Pool)机制,为开发者提供了 一个高效且易用的并行处理框架。 通…...

从零开始学 Rust:基本概念——变量、数据类型、函数、控制流

文章目录 Variables and MutabilityShadowing Data TypesScalar TypesCompound Types FunctionsFunction Parameters CommentsControl FlowRepetition with Loops Variables and Mutability fn main() {let mut x 5;println!("The value of x is: {}", x);x 6;pri…...

记录一次SpringMVC的406错误

原生态的406错误 1. 错误起因2. 解决办法解决方式一 检查是否有导入jackson依赖解决方式二 检查web.xml中是否有配置.html 3. 再次测试 1. 错误起因 最近博主准备重新撸一遍SSM以及SpringBoot的源码,于是用原始的SpringMVC写了一个demo,并且用Tomcat进行…...

Github 2025-02-23 php开源项目日报 Top9

根据Github Trendings的统计,今日(2025-02-23统计)共有9个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量PHP项目9JavaScript项目2Shell项目1TypeScript项目1Blade项目1Java项目1ASP项目1Vue项目1Laravel:表达力和优雅的 Web 应用程序框架 创建周期:…...

一、初始爬虫

1.爬虫的相关概念 1.1 什么是爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地爬取互联网信息的程序。 原则上,只要是浏览器…...

《A++ 敏捷开发》- 16 评审与结对编程

客户:我们的客户以银行为主,他们很注重质量,所以一直很注重评审。他们对需求评审、代码走查等也很赞同,也能找到缺陷,对提升质量有作用。但他们最困惑的是通过设计评审很难发现缺陷。 我:你听说过敏捷的结对…...

jar、war、pom

1. <packaging>jar</packaging> 定义与用途 用途&#xff1a;默认打包类型&#xff0c;生成 JAR 文件&#xff08;Java Archive&#xff09;&#xff0c;适用于普通 Java 应用或库。 场景&#xff1a; 开发工具类库&#xff08;如 commons-lang.jar&#xff09;。…...

WSL2安装过程记录

WSL2安装过程记录 1 先决条件2 安装WSL3 安装Linux4 图形化界面 因为命令安装的时候会直接将linux发行版安装到C盘&#xff0c;对于系统盘容量小和介意不能自定义安装位置的用户来说&#xff0c;非常不友好&#xff0c;所以我这里采用手动安装的方式&#xff0c; 命令安装可以参…...

HTML列表,表格和表单

列表 在 HTML 中&#xff0c;列表&#xff08;List&#xff09;是常见的一种布局方式。列表分为两种类型&#xff1a;有序列表&#xff08;Ordered List&#xff09;和无序列表&#xff08;Unordered List&#xff09;。 无序列表 无序列表&#xff08;Unordered List&#…...

Mysql进阶篇

存储引擎 Mysql体系结构 1). 连接层 最上层是一些客户端和链接服务&#xff0c;包含本地sock 通信和大多数基于客户端/服务端工具实现的类似于TCP/IP的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程池的概念&#xff0c;为通过认证安全…...

Spring-JAVA

针对你的问题&#xff08;211本科、Java开发方向&#xff09;&#xff0c;以下是中级Java开发工程师的晋升时间、薪资水平及技术要求的详细说明&#xff0c;结合国内一线/二线城市现状&#xff08;数据基于2023年行业调研&#xff09;&#xff1a; 一、晋升中级开发工程师的时间…...

sql的索引与性能优化相关

之前面试的时候&#xff0c;由于在简历上提到优化sql代码&#xff0c;老是会被问到sql索引和性能优化问题&#xff0c;用这个帖子学习记录一下。 1.为什么要用索引 ------------------------------------------------------------------------------------------------------…...

【Git版本控制器】第四弹——分支管理,合并冲突,--no-ff,git stash

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;Linux网络编程 &#x1f337;追光的人&#xff0c;终会万丈光芒 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 ​ 相关笔记&#xff1a; https://blog.csdn.net/djd…...

Elasticsearch除了用作查找以外,还能可以做什么?

前言 Elasticsearch用于实时数据分析、日志存储、业务智能等。还有日志与监控、多租户和安全性。以及应用场景包括日志分析、公共数据采集、全文搜索、事件数据、数据可视化。处理错误拼写和支持变体&#xff0c;不过这些可能还是属于搜索优化。企业搜索、日志管理、应用监控、…...

Windows事件日志分析新思路:不用记Event ID,用PowerShell和Log Parser自动化生成安全周报

Windows安全日志自动化分析&#xff1a;告别手工整理&#xff0c;用PowerShell打造智能周报系统 每次月底赶安全报告时&#xff0c;IT管理员最头疼的莫过于要反复筛选事件日志、统计各类安全事件的发生次数。传统方法需要记住大量Event ID&#xff0c;手动导出数据再整理成表格…...

哔哩下载姬DownKyi:3步掌握B站视频高效下载的完整解决方案

哔哩下载姬DownKyi&#xff1a;3步掌握B站视频高效下载的完整解决方案 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&a…...

python passlib

# 聊聊 Python 里的密码管理工具&#xff1a;Passlib 在 Python 项目里处理用户密码&#xff0c;是件需要格外小心的事。密码不能明文存储&#xff0c;得加密&#xff0c;但加密的方式又有很多种&#xff0c;选错了或者用错了&#xff0c;都可能留下安全隐患。这些年&#xff0…...

计算机毕业设计:Python农业粮食产量与气候预测平台 Django框架 数据分析 可视化 机器学习 深度学习 大数据 大模型(建议收藏)✅

博主介绍&#xff1a;✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久&#xff0c;选择我们就是选择放心、选择安心毕业✌ > &#x1f345;想要获取完整文章或者源码&#xff0c;或者代做&#xff0c;拉到文章底部即可与…...

保姆级图解:用Wireshark抓包实战,一步步拆解PCIe链路训练(LTSSM)的完整握手过程

保姆级图解&#xff1a;用Wireshark抓包实战&#xff0c;一步步拆解PCIe链路训练&#xff08;LTSSM&#xff09;的完整握手过程 当一块全新的PCIe设备插入主板后&#xff0c;系统却始终无法识别——这种场景对硬件工程师而言再熟悉不过。此时&#xff0c;协议分析仪上跳动的TS1…...

面向高端汽车暖风系统控制器的功率MOSFET选型策略与器件适配手册

随着汽车电气化与智能化进程加速&#xff0c;高端汽车暖风系统&#xff08;HVAC&#xff09;正朝着高能效、高功率密度、高可靠性及智能热管理方向演进。其核心控制器需精准驱动PTC加热器、高效水泵、散热风扇及风门电机等多元负载&#xff0c;功率MOSFET作为电能转换与分配的执…...

从 AIGC 到 AIGS:AI 重新定义软件服务

在企业级软件开发与数字化转型进程中&#xff0c;AI 技术正在从内容生产工具&#xff0c;逐步走向对软件服务体系的深度重构。过去大家普遍关注 AIGC 带来的效率提升&#xff0c;而面向企业级场景、尤其基于 Java 技术体系的业务系统&#xff0c;真正具备长期价值的是 AIGS 范式…...

如何快速搭建CSDN Bot

要建立一个功能完整的 CSDN Bot&#xff0c;通常有两种主要路径&#xff1a;一是使用官方或社区提供的集成工具&#xff08;如 OpenClaw/WinClaw&#xff09;进行快速对接&#xff0c;这属于应用层部署&#xff1b;二是从零开始进行底层开发&#xff0c;通过调用 CSDN 的开放 A…...

Python实战:手把手教你解密并下载AES-128加密的M3U8视频流(附完整代码)

Python实战&#xff1a;手把手教你解密并下载AES-128加密的M3U8视频流&#xff08;附完整代码&#xff09; 最近在帮朋友处理一个在线教育平台的视频下载需求时&#xff0c;遇到了AES-128加密的M3U8视频流。这种加密方式在各大视频平台都很常见&#xff0c;但完整实现解密下载…...

从Button点击到自定义事件系统:手把手教你玩转UnityEvent与C#委托的混合编程

从Button点击到自定义事件系统&#xff1a;手把手教你玩转UnityEvent与C#委托的混合编程 在Unity开发中&#xff0c;Button组件的点击事件可能是我们最熟悉的交互入口。但你是否思考过&#xff0c;为什么在Inspector面板拖拽方法就能实现回调&#xff1f;为什么代码中既能用Add…...