- 博客(7)
- 收藏
- 关注
原创 网络io学习理解(二)select、poll、epoll、reactor模式
本文总结了select、poll、epoll三种I/O多路复用机制及Reactor模式的核心概念。select采用位图管理文件描述符,存在1024数量限制;poll改用链表结构突破限制,但仍是O(n)复杂度;epoll通过事件驱动机制实现高效管理,支持水平触发(默认)和边沿触发两种模式。Reactor模式将I/O管理转为事件驱动,通过回调函数处理不同事件。文章详细介绍了各机制的使用流程、关键结构体和函数实现,并给出了Reactor模式的具体设计示例,包括connection结构体、事件注册函数及accept
2025-09-22 17:30:54
901
原创 网络io学习理解(一)一请求一线程
网络I/O发展历程:从阻塞I/O到异步I/O的演进 本文系统介绍了网络I/O的发展历程和关键技术。网络I/O主要包括两个阶段:数据从网卡到内核缓冲区,再从内核到用户空间。其发展经历了阻塞I/O、非阻塞I/O、I/O多路复用、信号驱动I/O和异步I/O五个阶段。详细分析了select、poll、epoll等I/O多路复用技术的实现原理和优缺点,其中epoll采用红黑树和事件驱动机制,支持10万级连接。同时介绍了Reactor模式和协程技术,对比了不同I/O模型的性能特点。最后通过socket编程实例,展示了从
2025-09-21 19:22:01
560
转载 [特殊字符]️ VS Code 中 GNU Global 配置问题排查与解决指南
GNU Global 需要正确安装并配置到系统的 PATH 环境变量中,VS Code 及其相关扩展才能调用它。
2025-09-11 19:22:37
345
原创 Linux中VS Code 报错preLaunchTask“C/C++:gcc.exe生成活动文件”已终止,退出代码为 -1的解决方案
修改launch.json和tasks.json文件解决VS Code 报错preLaunchTask“C/C++:gcc.exe生成活动文件”已终止,退出代码为 -1
2024-03-17 11:11:49
4316
1
原创 指针知识自学
malloc函数申请空间时,是在堆空间里面申请空间,返回的是无类型指针,所以进行强制类型转化。当你使用完这个指针,进行释放的时候free(指针名),同时要将指针置为NULL,不然会成为野指针。hello是存放在字符串常量区中,无法更改,此时只是指针p指向它,无法通过p[0]='H'来更改。不能正常打印,在执行下一个函数的一瞬间,会清空上一个函数的值,滞留性。函数调用的时候,功能函数存在栈空间里面,会随着函数调用结束而释放,堆空间则不会自动释放。*(p+1)此时的p会增加相应的函数变量类型大小的位置。...
2022-07-14 20:56:10
137
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅