EventLoopThread源码阅读(muduo::net)

RV1126 ISP开发实战:从Tuner调试到IQ文件解析 本文详细介绍了RV1126 ISP开发的完整流程,从Tuner调试到IQ文件解析,涵盖了环境搭建、工具使用、参数配置及性能优化等关键环节。通过实战案例和避坑指南,帮助开发者快速掌握Rockchip芯片的ISP开发技巧,提升图像处理质量。 阅读详情

#20210824 EventLoopThread源码阅读(muduo::net)

如果有问题,欢迎交流!!!

EventLoopThread Class创建一个线程执行loop()循环,并返回该EventLoop对象的地址。EventLoopThread Class控制其创建的线程和loop()循环的生命期。

数据成员

  • EventLoop* loop_

本EventLoopThread Class所创建的EventLoop对象所在的地址

  • bool exiting_

初始化为false,析构函数中设为true

  • Thread thread_

负责执行loop()循环的线程

  • MutexLock mutex

锁,保护loop_和cond_

  • Condition cond_

条件变量,thread_通过cond_通知父线程EventLoop对象创建完成。

  • ThreadInitCallback callback_

以EventLoop&为参数,由thread_执行

成员函数

EventLoopThread(const ThreadInitCallback& cb = ThreadInitCallback(),const string& name = string());

构造函数,初始化变量,初始化线程

~EventLoopThread()

析构函数,退出loop()循环,退出线程

EventLoop* startLoop()

开始子线程的运行,获得新建的EventLoop对象,并返回

void threadFunc()

子线程执行的函数,在其中执行callback_,创建EventLoop对象,并调用loop()

AI Agent在智能投研中的实战:多智能体信息整合与策略生成 本文将带你从0到1完整搭建一套基于LangChain和AutoGen的多智能体AI投研系统首先,我们会一起梳理智能投研的核心痛点、金融数据的独特性,以及为什么传统AI Agent,尤其是多智能体协同架构,是破局的唯一最优解;RAG检索增强生成(但这次是金融领域定制化的,包括向量检索+时序数据检索+知识图谱检索的“三元检索增强”)、AutoGen多智能体协同框架。 阅读详情

相关推荐

Palabos User Guide中文解读 | 第五章 | Palabos编程 (跳过了第四章Palabos-Java接口)

作者的话:本人在学习palabos时,发现国内中文资料甚少,恰好网上可以直接搜到palabos user guide这种英文资料,加之时间充裕,便打算开始翻译,翻了一节后发现这可能算侵权,就比较伤脑筋,突然想到自己写中文解读即可,便有了下面的博客。 Palabos User Guide Release 1.0 r1 Copyright © 2019 University of Geneva Jul...

Yulan Fang's notes. 2298

muduo学习(一):EventLoop与EventLoopThread

这段时间都在学习muduo网络库,这里整理一下这段时间的学习笔记 一 、Reactor模式: muduo也是一种基于reactor模式开发的网络库,关于reactor模式网上已经有很多内容,这里不赘述,muduo使用的是主从模式的reactor,即一个mainReactor线程负责监听端口,任何连接的套接字都会被转到subReactor所属的线程中进行处理,暂时还没看到muduo的subReact...

宣小K的博客 525

生产环境下oracle19c rac恢复节点2

现状:目前节点1数据库集群服务处于正常,节点2服务器由于系统故障无法恢复,确认系统重装。目标:不影响业务的情况下,重新把节点2添加回集群中。

sqlora的专栏 867

【muduo】net篇---EventLoopThread和EventLoopThreadPool

  EventLoopThread是事件循环线程,包含一个Thread对象,一个EventLoop对象。在构造函数中,把EventLoopThread::threadFunc 注册到Thread对象中(线程启动时会回调)。   EventLoopThreadPool是事件循环线程池,管理所有客户端连接,每个线程都有唯一一个事件循环。可以调用setThreadNum设置线程的数目。 #include...

青萍之末的博客 1529

海思MPP平台千兆以太网驱动集成与测试指南

千兆以太网(GE)是嵌入式视觉系统中音视频流传输与边缘控制的核心物理接口,其底层驱动需兼顾DMA高效调度、中断实时响应与PHY链路稳定性。在Linux嵌入式环境中,GE驱动通常基于net_device框架实现,并深度耦合于SoC专用媒体处理平台(如海思MPP),通过硬件抽象层(HAL)屏蔽寄存器操作,提供零拷贝、RGMII时序适配、描述符环管理等关键能力。技术价值体现在降低CPU负载、保障1080p@30fps实时推流、支持ONVIF/RTSP协议交互及固件远程升级。典型应用场景包括网络摄像机(IPC)、A

weixin_42599908的博客 90

运维与软件实施课表

运维与软件实施课表 课程 章节编号 章节 课程地址 软件及操作系统基础 ch01 软件及操作系统基础01 实施、运维工程师基本技能:https://blog.csdn.net/qq_28189423/article/details/82700539 老毛桃制作winPE镜像:https://blog.csdn.net/qq_2818942...

Mr.O~的博客 1万+

muduo库的EventLoopThread类剖析

关于EventLoopThread有以下几点: 1.任何一个线程,只要创建并运行了EventLoop,都称之为I/O线程。 2.I/O线程不一定是主线程。I/O线程中可能有I/O线程池和计算线程池。 3.muduo并发模型one loop per thread + threadpool 4.为了方便使用,就直接定义了一个I/O线程的类,就是EventLoopThread类,该类实际上就是对

FreeeLinux's blog 1432

DEMATEL-ISM模型的Python实现——方法介绍以及代码复现

本文参考文献与网络资料,对DEMATEL-ISM方法做了介绍何步骤描述,并给出Python代码进行了计算和绘图。

cros1的博客 2万+

muduo网络库源码复现笔记(二十):EventLoop::runInloop()函数和EventLoopThread类

Muduo网络库简介 muduo 是一个基于 Reactor 模式的现代 C++ 网络库,作者陈硕。它采用非阻塞 IO 模型,基于事件驱动和回调,原生支持多核多线程,适合编写 Linux 服务端多线程网络应用程序。 muduo网络库的核心代码只有数千行,在网络编程技术学习的进阶阶段,muduo是一个非常值得学习的开源库。目前我也是刚刚开始学习这个网络库的源码,希望将这个学习过程记录下来。这个网络库的源码已经发布在GitHub上,可以点击这里阅读。目前Github上这份源码已经被作者用c++11重写,我学习的

梁熙民的csdn博客 607

红队内网攻防渗透:内网渗透之内网对抗:实战项目&VPC1打靶&PHP-RCE&三层代理路由&防火墙上线&密码喷射&域控提权

上面已经抓取到了密码,但是我们通过拓扑分析看,要想上线win10只能通过正向shell,因为win7的防火墙是开的,win10反向主动连接肯定入站规则拦截,而win10自己没有开防火墙,所以win7主动正向连接就可以上线。win7开启了防火墙,入站规则肯定是会拦截我们的请求的,所以我们需要反向上线,让win7主动来连接我们。这里扫描发现是存在ms17010漏洞的,但是想上线192.168.2.142的话,我们没有路由是上线不了的,这里有两种办法:一种msf直接生成后门,另一种cs移植后门到msf。

HACKONE的博客 910

【产品经理修炼之道】- 优惠券系统从入门到精通(一)

为了满足企业的优惠券业务,优惠券系统一般需要包含哪些功能?这篇文章里,作者从架构、功能等维度做了拆解,一起来看看吧。此部分主要讲解为满足公司优惠券业务,需要优惠券系统必须包含哪些功能,即优惠券架构图。

xiaoli8748的专栏 1810

学习muduo库(14)之eventloopthread类

UML: 解释; 这个类体现了muduo库的思想:每一个线程有且有一个eventloop对象。此类的功能也是,创建一个线程,并在线程的回调函数中创造一个eventloop对象。 值得学习的细节: EventLoop* EventLoopThread::startLoop() { assert(!thread_.started()); thread_.start(); ...

请叫我少爷的博客 529

这个AI工具可以把产品说明书转成演示视频,老板狂喜

回顾本文,我们从“传统视频制作的痛点”出发,拆解了AI将产品说明书转为视频的核心技术(NLP文本理解→CV画面生成→视频合成),并提供了3类工具实操方案(SaaS/开源/API)。推广成本降80%,制作效率提90%,产品迭代与推广终于能“同频”;摆脱对专业团队的依赖,自己就能快速产出高质量视频;对技术爱好者来说,这是一个“AI多模态融合”的绝佳实践案例(NLP+CV+语音合成的综合应用)。今天就找一份产品说明书,用HeyGen或Pictory试做一个视频。

AIGC应用创新大全的博客 323

muduo源码分析——EventLoopThreadPool和EventLoopThread

现在开始写EventLoop相关的类,我决定先写EventLoopThreadPool。 因为从拥有的关系上来看,TcpServer拥有一个EventLoopThreadPool,然后EventLoopThreadPool拥有若干个EventLoopThread(由TcpServer初始化时决定)。至于是不是直接拥有EventLoop,我觉得吧,可以说拥有,也不好说,因为它并没有去操作这些Even...

我的~~的博客 336

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

EventLoopThreadPool Class源码阅读(muduo::net)

#EventLoopThreadPool Class`源码阅读(muduo::net) 如果有问题,欢迎交流!!! 数据成员 EventLoop* baseLoop_ EventLoopTreadPool Class对象所在loop。有些成员函数在执行前要检查当前是不是在baseLoop_所在线程 string name_ 用于给一众EventLoopThread命名 int numThreads_ 创建的线程数量 next_ 下一个EventLoop对象 std::vec

Wendell_0的博客 161

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

muduo_net代码剖析之EventLoopThread

说明:理解[muduo_net代码剖析之EventLoop]是学习本文的基础

JaweG 385

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

使用CMakeLists.txt和vscode的muduo环境设置

使用CMakeLists.txt的muduo环境设置 @(CMake笔记) 1、CMakeLists.txt 下面的编写方式可以通过cmake . -DCMAKE_BUILD_TYPE=Release或者cmake . -DCMAKE_BUILD_TYPE=Debug选择使用release模式生成的muduo还是debug模式生成的muduo。 #声明要求的cmake版本 cmake_minimum_required(VERSION 3.10) # 工程名 project(setConfiugre) #

Wendell_0的博客 788

VS2017远程与muduo环境配置方法一 release版

VS2017远程与muduo环境配置方法一 release版 @(Linux多线程服务端编程:使用muduoC++网络库读书笔记) 具体配置分成三步: 安装muduo的头文件到系统目录下 安装muduo的库文件到系统目录下 设置vs2017的属性表 安装muduo头文件到系统目录下 拷贝../build/release-install-cpp11/include/muduo到/usr/local/include下 安装muduo库文件到系统目录下 拷贝../build/release-install

Wendell_0的博客 451

TimerQueue Class源码阅读

TimerQueue Class源码阅读 @(Linux多线程服务端编程:使用muduoC++网络库读书笔记) 文章目录`TimerQueue Class`源码阅读`Timer Class`源码阅读数据成员函数成员`TimerId Class`数据成员函数成员`TimerQueue Class`数据成员函数成员 TimerQueue Class封装了基于timerfd的计时器,可是它承担什么工作呢?单纯是确定当前的时间吗?超时回调,超时的时候进行什么工作吗?它来帮助epoll实现0轮询吗? TimerQue

Wendell_0的博客 343

Channel Class详解&源码阅读

Channel Class源码阅读 欢迎交流!!! Channel Class封装关心的文件描述符、关心的事件和对应的处理函数。该对象的实例只能在所属的EventLoop中被调用,所以不需要考虑线程安全问题。 数据成员 loop_ 该对象的实例所在的EventLoop fd_ 该对象关心的文件描述符 events_ 该对象关心的事件 revents_ 触发的事件 index_ 标识,标定当前channel处于未被监视、不关心事件,被监视未被监视、不关心事件,被监视未被监

Wendell_0的博客 329

网络库缓冲区实践思路

网络库缓冲区实践思路 @(网络编程实现) 下面给出的是借鉴于muduo::Buffer的非阻塞I/O,TCP套接字的缓冲区设置。 关键字: 非阻塞网络、TCP、多连接、简单 为什么需要缓冲区 为什么需要输出缓冲区 受限于TCP协议,应用程序要发送的数据可能无法一次发送完成。在这种情况下,应用程序不可能阻塞在发送端口上。这就需要缓冲区暂时保存还未发送的数据,待套接字可写时再又网络库发送。 为什么需要输入缓冲区 应用程序只关心消息到达,而不关心数据到达;TCP协议是无消息边界的字节流协议。

Wendell_0的博客 272

Condition Class (muduo/base/Condition.h)& MutexLock Class,MutexLockGuard Class(muduo/base/Mutex.h)详解

Condition Class (muduo/base/Condition.h)& MutexLock Class,MutexLockGuard Class(muduo/base/Mutex.h)源码阅读 如有问题,欢迎交流!!! MutexLock Class 单纯是对<pthread.h>下锁的封装,但是在.h文件中有很多宏定义。MutexLock Class有两个数据成员:锁,pthread_mutex_t mutex_和持有锁的线程,pid_t holder_。该类在原有<

Wendell_0的博客 267

InetAddress Class源码阅读(muduo::net)

InetAddress Class源码阅读(muduo::net) 如果有问题,欢迎交流!!! 对网络地址的封装。 数据成员 union{stuct sockaddr_in addr_;struct sockaddr_in6 addr6_;} 也就是说,对于一个InetAddress Class类型的对象来说,它既可以是一个ipv4,也可以是一个ipv6。反正大多数基本api输入的参数都要sockaddr,然后自己检查类型。我们可以先获取addr_,然后再根据sin_family做最终确定。就像soc

Wendell_0的博客 259

Thread Class源码阅读

Thread Class源码阅读(muduo/base/Thread) 如有问题,欢迎交流!!! Thread Class是对<pthread.h>下线程的封装,使用默认线程属性。 相关类型和函数 void* startThread(void* obj) 这就是对执行线程函数的第二层封装,在其内部调用线程函数的封装ThreadData::runInThread()。 struct ThreadData 这是线程函数startThread的参数类型。 std::function&l

Wendell_0的博客 256

TcpConnection的上下文

#20210917 TcpConnection的上下文 如有问题,欢迎交流! 上下文 相关API: void TcpConnection::setContext(const boost::any& context) {context_ = context;} boost::any* TcpConnection::getContext() const {return context_} 解释: 用于记录本次和本次连接密切相关的信息 ...

Wendell_0的博客 251

EPollPoller Class详解&源码阅读

EPollPoller Class源码阅读 如有问题,欢迎交流 EPollPoller Class是以Poller Class为基类,基于epoll(4)封装I/O多路复用I/O多路复用I/O多路复用的具体类。 数据成员 EventLoop* ownerLoop_ 本实例所在的EventLoop,继承自基类 std::map<int,Channel*> channels_ 本实例所监视的文件描述符,继承自基类 kInitEventListSize = 16 用于初始化触发事

Wendell_0的博客 242
上一篇: InetAddress Class源码阅读(muduo::net)
下一篇: EventLoopThreadPool Class源码阅读(muduo::net)
Wendell_0
博客等级 码龄9年 1粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值