当前位置: 首页 > 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

相关文章:

  • Python常见面试题的详解16
  • DeepSeek掘金——基于DeepSeek-R1构建文档问答机器人
  • C 语言文件操作
  • Seata1.5.2学习(二)——使用分布式事务锁@GlobalLock
  • 微信小程序 - 页面跳转(wx.navigateTo、wx.redirectTo、wx.switchTab、wx.reLaunch)
  • Python--函数入门
  • Docker 网络详解
  • 正则表达式--元字符-特殊符号(5)
  • vue+element-plus简洁完美实现淘宝网站模板
  • 【STM32】内存管理
  • UE_C++ —— Delegates
  • 网络安全营运周报
  • 【Linux系统编程】网络编程
  • 机器学习数学通关指南——拉格朗日乘子法
  • 汽水分离器 酿酒不锈钢碳钢蒸汽发生器锅炉空气旋风式油水分离器
  • Python----数据分析(Numpy一:numpy库简介,与list列表的区别,数组的创建,随机数组的创建)
  • 一、初始爬虫
  • 基于数据可视化学习的卡路里消耗预测分析
  • VisActor/VTable - 快速搭建表格
  • 【HeadFirst系列之HeadFirst设计模式】第10天之迭代器与组合模式:遍历与管理的艺术
  • 百度浏览器下载/seo站长网
  • 成功的微网站/中文域名注册官网入口
  • 什么网站可以做直播/建网站找谁
  • seo 网站优化/西安百度快速排名提升
  • 商标查询网/百度关键词优化首选667seo
  • 展示型网页设计/搜索引擎优化指南