epoll笔记

ops/2025/1/2 7:23:49/

epoll是1个服务端监听n个客户端的多路复用技术(通讯方式socket)

epoll:(事件驱动)服务端通过管道通讯方式将有变化事件的客户端保存到1个队列

select/poll:(轮询驱动)服务端主动遍历监听的所有客户端,查看每个客户端的fd是否有变化的消息(通过pipe管道通讯方式)弊端:每次遍历全部fd消耗更多cpu,fdset 每次都需全部copy到内核态

实例1:MessageQueue机制

looper() UI线程走到nativePollOnce -〉epoll_wait(mWakeEventFd)挂起,

MessageQueue有消息过来时,write方法通过pipe方式通知mWakeEventFd有数据就绪,

epoll_wait恢复执行,继续消费message

mWakeEventFd创建在MessageQueue nativeInit ():

mWakeEventFd = eventfd(0, EFD_NONBLOCK | EFD_CLOEXEC)int result = epoll_ctl(mEpollFd, EPOLL_CTL_ADD, mWakeEventFd)//并添加epoll监听

唤醒原理:

实例2: eventserver监听大量client发送event事件过来

while (start) { 
struct epoll_event epollEvents[10];
int epollFd = epoll_create1(EPOLL_CLOEXEC); 
int ret = epoll_ctl(epollFd, EPOLL_CTL_ADD, sockFd_, &event);
int eventNum = epoll_wait(epollFd, epollEvents, 10, 10000); 
}


http://www.ppmy.cn/ops/146310.html

相关文章

YoloV9改进策略:Head改进|DynamicHead,利用注意力机制统一目标检测头部|即插即用

摘要 论文介绍 本文介绍了一种名为DynamicHead的模块,该模块旨在通过注意力机制统一目标检测头部,以提升目标检测的性能。论文详细阐述了DynamicHead的工作原理,并通过实验证明了其在COCO基准测试上的有效性和效率。 创新点 DynamicHead模块的创新之处在于它首次尝试在一…

数据库索引与 MVCC:原理、应用及事务隔离

1.什么时候不要使用索引? 在数据库设计和优化中,索引是提高查询性能的重要工具。然而,并不是所有情况下都适合使用索引。以下是一些不应该或不需要使用索引的情况: 小表:对于非常小的表(例如,…

社区二手物品交易小程序ssm+论文源码调试讲解

第4章 系统设计 一个成功设计的系统在内容上必定是丰富的,在系统外观或系统功能上必定是对用户友好的。所以为了提升系统的价值,吸引更多的访问者访问系统,以及让来访用户可以花费更多时间停留在系统上,则表明该系统设计得比较专…

基于STM32F103控制L298N驱动两相四线步进电机

文章目录 前言一、模块参数二、接口说明三、准备工作四、直流电机驱动引脚接线效果展示 五、两相四线步进电机驱动步进电机相关概念拍数驱动时序引脚接线效果展示 六、参考示例 前言 L298N 是一种常见的双 H 桥电机驱动模块,广泛用于驱动直流电机和步进电机。它基于…

正点原子串口例程解读

首先是串口初始化,这里初始化的是usart3 void esp8266_init(void) {huart_wifi.InstanceESP8266; //uart3huart_wifi.Init.BaudRate115200; // 设置波特率为115200huart_wifi.Init.WordLengthUART_WORDLENGTH_8B; // 设置数据位长度为8位huart_wifi.Init.StopBi…

异步爬虫之协程的基本原理

我们知道爬虫是 IO 密集型任务,例如使用 requests 库来爬取某个站点,当发出一个请求后,程序必须等待网站返回响应,才能接着运行,而在等待响应的过程中,整个爬虫程序是一直在等待的,实际上没有做…

关于 PCB线路板细节锣槽问题 的解决方法

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/144783817 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…

第二十七周学习周报

目录 摘要Abstract1. 文献阅读1.1 SVM1.2 BI-LSTM1.4 实验研究 总结 摘要 在本周阅读的文献中,作者提出了一种将SVM和BI-LSTM进行耦合的新型水质预测模型。BI-LSTM模型用于提取线性和非线性模式,然后将其发送到SVM模型。将BILSTM模型与SVM模型相结合提高…