I/O 多路复用
举例一.同步阻塞IO服务端一直循环等待连接每次循环只处理一个请求。会在accept和read方法进行阻塞多线程时需要创建对应的线程数去操作二.同步非阻塞accept不阻塞如果没有连接返回一个非法的值一直循环如果有连接就加到fd_list中缺点需要一直循环三 .select模式下面是大概的源码。1.重置FD_SET是bitmap 默认只有1024位2.for循环把初始化拿到的fds[i]跟rset绑定。需要监听哪几位fd3.调用select方法从用户态拷贝fd到内核态。会进行遍历fd。查看有没有哪个fd就绪了返回总共就绪的数量int如果一直没有则阻塞4.由于只是返回了就绪个数不知道哪个就绪了所以还需要一次遍历来确定就绪的fd然后调用read来读数据fd_set 入参表示要监听哪些fd如图1号和3号需要监听出差表示哪些FD就绪如图3号准备好了缺点1FD_SET是bitmap 默认只有1024位所以默认监听1024fd2处理完一轮后需要重新初始化FD_SETFD_SET不能复用3每次调用select需要把fd从用户态拷贝到内核态调用完成后还要把全部fd从内核态拷贝到用户态占用内存4需要遍历全部的fd来找到就绪的fd来执行逻辑需要On复杂度四 .poll模式源码大致如下。pollfds结构中fd表示监听的文件描述符events表示监听的事件,revents表示就绪的事件。poll方法入参文件描述符数组数组长度超时时间出参就绪的个数跟select类似将一批fd发送到内核态进行判断。就绪了就返回同时把对应的revents设置为1因为也不知道哪个fd就绪了还是需要全部遍历但是在遍历的过程中就把revents设置为0统一做一次初始化。使用的pollfds数据结构组成数组没有1024的限制五.epoll模型创建实例epoll_create1() 分配 struct eventpoll初始化红黑树 rbr 就绪链表 rdllist注册监听epoll_ctl(EPOLL_CTL_ADD) 创建 struct epitem插入红黑树 rbr注册回调 ep_poll_callback 到 fd 的等待队列等待事件epoll_wait()检查就绪链表 rdllist 是否为空空则进入睡眠 (TASK_INTERRUPTIBLE)事件到达文件就绪驱动调用 wake_up() 唤醒等待队列触发 ep_poll_callback 回调将 epitem 加入就绪链表 rdllist唤醒 epoll_wait 中的进程返回事件epoll_wait 被唤醒遍历就绪链表 rdllist拷贝事件到用户空间 events 数组返回就绪事件数量两种模式LT vs ET 对比。默认LT六.对比参考链接https://www.bilibili.com/video/BV1r54y1f7bU/?spm_id_from333.337.search-card.all.clickvd_sourced9a52d82a1f11ceeeb7021c93269e8d2https://www.bilibili.com/video/BV1gN411e7gd/?spm_id_from333.337.search-card.all.clickvd_sourced9a52d82a1f11ceeeb7021c93269e8d2

相关新闻

1e1af3e8-900f-4e13-937e-e02fce56cf3e

1e1af3e8-900f-4e13-937e-e02fce56cf3e

var code “e687a553-b07b-4f81-8a71-0c3720322e3d”

2026/5/17 11:51:28 阅读更多 →
企业级高校实习管理系统管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】

企业级高校实习管理系统管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】

系统架构设计### 摘要 随着高等教育信息化建设的不断推进,高校实习管理逐渐成为教学管理中的重要环节。传统的高校实习管理多依赖手工操作和纸质文档,效率低下且易出错,难以满足现代高校对实习过程精细化、智能化的需求。实习管理涉及学生、企…

2026/7/4 22:33:13 阅读更多 →
【全网最全】2026主流AI绘画比例大横评:DALL-E 3、Midjourney、Gemini与Claude的隐藏技巧

【全网最全】2026主流AI绘画比例大横评:DALL-E 3、Midjourney、Gemini与Claude的隐藏技巧

前言做电商、做自媒体的朋友最近可能都发现了一个痛点:想生成一张完美的亚马逊 Banner(比如 1464x600)或者小红书封面,结果 AI 丢给你一张正方形的图。为什么有的 AI 只能生成固定比例?为什么 Claude 看起来能“裁剪”…

2026/7/3 11:38:56 阅读更多 →

最新新闻

Beyond Compare 5永久激活终极指南:开源密钥生成器完整使用教程

Beyond Compare 5永久激活终极指南:开源密钥生成器完整使用教程

Beyond Compare 5永久激活终极指南:开源密钥生成器完整使用教程 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen 还在为Beyond Compare 5的30天试用期而烦恼吗?当你正专注…

2026/7/5 6:15:50 阅读更多 →
告别AI画图翻车!零一AI设计智能体,依托GPT-Image-2重构视觉生产力

告别AI画图翻车!零一AI设计智能体,依托GPT-Image-2重构视觉生产力

做设计、做运营、做内容的人,大概率都踩过AI生图的坑:提示词写满百字,成品构图错乱;图片内嵌文字乱码、笔画残缺;改图反复返工,AI看不懂修改逻辑;生成画面氛围感够了,却没法落地商用…

2026/7/5 6:13:49 阅读更多 →
从 RAG 到 Agent学习笔记

从 RAG 到 Agent学习笔记

大模型(LLM)的能力正在逐渐趋同,真正的技术壁垒正在向 Harness Engineering(驾驭工程)转移。本文将结合近期技术探讨,系统梳理大模型应用开发中的核心工程化技术,涵盖 RAG 结构化输出、约束解码…

2026/7/5 6:11:49 阅读更多 →
文旅伴手礼场景,白酒包装定制如何融合地方特色元素

文旅伴手礼场景,白酒包装定制如何融合地方特色元素

文旅伴手礼视角下的白酒包装定制策略在文旅产业与地方酒文化深度融合的背景下,白酒包装定制已不再局限于简单的瓶身印刷,而是演变为承载地域文化、提升伴手礼附加值的关键载体。对于景区管理机构、地方酒企及文创开发团队而言,如何将地方特色…

2026/7/5 6:09:48 阅读更多 →
如何轻松管理Minecraft游戏体验:PCL启动器完整指南

如何轻松管理Minecraft游戏体验:PCL启动器完整指南

如何轻松管理Minecraft游戏体验:PCL启动器完整指南 【免费下载链接】PCL Minecraft 启动器 Plain Craft Launcher(PCL)。 项目地址: https://gitcode.com/gh_mirrors/pc/PCL 如果你是一位Minecraft玩家,是否曾为复杂的游戏…

2026/7/5 6:07:48 阅读更多 →
WPS-Zotero插件:5分钟搞定跨平台文献引用,科研写作效率翻倍

WPS-Zotero插件:5分钟搞定跨平台文献引用,科研写作效率翻倍

WPS-Zotero插件:5分钟搞定跨平台文献引用,科研写作效率翻倍 【免费下载链接】WPS-Zotero An add-on for WPS Writer to integrate with Zotero. 项目地址: https://gitcode.com/gh_mirrors/wp/WPS-Zotero 还在为Windows和Linux之间切换文献管理软…

2026/7/5 6:05:48 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻