xttppy技术专栏
文章平均质量分 95
xttppy
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Linux IO多路复用:select、poll、epoll性能大比拼
摘要:Linux下的IO多路复用技术select、poll和epoll通过内核统一监听文件描述符,提升系统并发能力。select使用位图结构,限制1024个fd,需全量遍历;poll改用数组结构取消数量限制,但仍需遍历。epoll采用红黑树和就绪链表,实现O(1)复杂度,支持百万级连接,是Nginx等高性能服务器的首选。select/poll适用于低并发场景,epoll则专为高并发设计,在字节跳动等企业的海量连接场景中发挥关键作用。三者在fd上限、时间复杂度和触发模式上存在显著差异,epoll在性能和扩展性原创 2025-12-21 14:40:27 · 744 阅读 · 0 评论 -
进程、线程、协程:一文搞懂区别
摘要:进程、线程和协程是并发编程的三种核心机制,主要区别在于资源分配和调度方式。进程是独立的资源分配单位,线程是CPU调度的基本单位且共享进程资源,协程则是用户态轻量级线程,由程序自身调度。进程切换开销最大但隔离性强,线程次之,协程开销最小但需主动协作。进程适合强隔离场景,线程适合I/O密集型任务,协程则适用于超高并发I/O场景。协程不适合CPU密集型任务,因其协作式调度可能导致性能下降。理解三者的差异有助于合理选择并发模型。原创 2025-12-21 07:35:48 · 1437 阅读 · 0 评论 -
对于7种高效进程间通信(IPC)的补充
本文补充了进程间通信(IPC)中匿名管道和命名管道的核心机制。重点解析了匿名管道的阻塞机制:当读写条件不满足时,进程会休眠等待,避免CPU空转并实现进程同步。同时详细介绍了命名管道中open系统调用的使用方法,包括参数flags的组合使用和文件权限设置。这些补充内容完善了对管道通信机制的理解,特别是阻塞模式的工作原理及其在进程同步中的重要作用。文章采用技术术语与示例相结合的方式,清晰阐述了这些底层通信机制的技术细节。原创 2025-12-18 22:22:39 · 573 阅读 · 0 评论 -
7种高效进程间通信(IPC)方式详解与实战
本文详细介绍了7种常用的进程间通信(IPC)方式,包括匿名管道、命名管道、消息队列、共享内存、信号量、Socket和信号。每种方式都从原理特点、核心函数和代码示例三个维度进行说明,其中匿名管道适用于父子进程通信,命名管道支持无亲缘关系进程,消息队列适合按类型传递数据,共享内存效率最高但需配合信号量同步,Socket支持跨网络通信,信号则用于简单事件通知。文章最后给出了IPC选型建议,帮助开发者根据具体场景选择最合适的通信方式。所有示例代码均可直接编译运行,具有实践参考价值。原创 2025-12-17 23:42:53 · 802 阅读 · 0 评论 -
TCP与UDP实战:从握手到黏包解决
本文章主要解决TCP的常见面试问题两次握手无法确认客户端的接收能力(服务器无法判断自己的SYN+ACK是否被收到),三次才能确保双向通信链路通畅。关闭连接时,被动方可能仍有数据未发送,需分 “确认关闭请求” 和 “自己发起关闭” 两步,无法像三次握手那样合并SYN+ACK。TIME_WAIT作用:避免旧连接的残留报文干扰新连接,确保被动方收到最后一个 ACK。2MSL是的缩写,即两倍的报文最大生存时间,是 TCP 协议中TIME_WAIT状态的等待时长标准。MSL 定义。原创 2025-12-17 11:02:24 · 718 阅读 · 0 评论 -
C++智能指针Unique_ptr核心实现与优化技巧
本文详细讲解了C++智能指针unique_ptr的核心特性与实现原理。主要内容包括:1)unique_ptr的独占所有权特性,禁止拷贝仅支持移动语义;2)通过模拟实现展示其核心功能,包括资源自动释放、移动语义支持、裸指针行为模拟;3)关键特性noexcept的作用,影响编译器优化和容器异常安全策略;4)智能指针模拟裸指针行为的重要性,降低学习成本、保持代码直观性并兼容现有接口;5)explicit关键字防止隐式转换的作用。文章强调智能指针在保持易用性的同时,通过RAII机制解决了裸指针的内存管理缺陷。原创 2025-12-16 14:20:59 · 1033 阅读 · 0 评论
分享