
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
本文详细解析了Muduo网络库中EPollPoller的实现,它是Linux下基于epoll系统调用的IO多路复用组件。EPollPoller通过封装epoll_create/epoll_ctl/epoll_wait系统调用,实现了Poller抽象接口,主要包括事件轮询(poll)、通道更新(updateChannel)和移除(removeChannel)等功能。核心设计亮点包括:1)使用状态机(

本文详细解析了Muduo网络库中的Socket类设计与实现。Socket类作为原生socket文件描述符的轻量级封装,采用RAII机制确保资源自动释放,提供bind/listen/accept等核心操作的面向对象接口,并封装了TCP_NODELAY、SO_REUSEADDR等高性能网络编程必备选项。实现上通过SocketsOps模块转发系统调用,支持IPv6兼容,并针对调试需求提供TCP状态查询功

本文详细介绍了Muduo库中的线程池实现ThreadPool。该线程池基于生产者-消费者模型,采用互斥锁保护共享资源,通过双条件变量(notEmpty_/notFull_)实现高效同步。核心特性包括:支持有界任务队列、线程初始化回调、优雅启停机制等。实现上使用RAII管理锁和线程资源,while循环防止虚假唤醒,全量异常捕获确保稳定性。设计亮点包括:退化执行机制(无工作线程时同步执行任务)、精准唤

本文详细解析了Muduo网络库中CountDownLatch的实现,这是一个基于互斥锁和条件变量的线程同步工具。文章首先介绍了CountDownLatch的类定义和核心功能,包括wait()、countDown()和getCount()三个主要接口。随后深入剖析了实现细节,重点讲解了RAII锁管理、while循环防止虚假唤醒、notifyAll()确保唤醒所有等待线程等关键设计。文章还通过典型场景

本文介绍了Muduo网络库中的Mutex.h实现,该文件封装了POSIX互斥锁,提供了线程安全的互斥机制。主要内容包括:1) 通过MutexLock类封装原生pthread_mutex_t,增加线程持有检查和断言验证;2) 使用RAII模式的MutexLockGuard实现自动加解锁;3) 引入Clang线程安全注解进行静态检查;4) 通过MCHECK宏检查系统调用返回值。该设计解决了原生互斥锁易

本文介绍了Muduo网络库中Condition类的设计与实现。Condition是对POSIX条件变量的封装,强制与MutexLock绑定使用,提供线程同步机制。主要特点包括:1) 通过引用绑定互斥锁确保线程安全;2) 使用RAII模式管理资源;3) 实现wait()、notify()等核心接口;4) 加入超时等待功能;5) 通过MCHECK宏检查系统调用返回值。文章详细分析了wait()的原子操

本文介绍了一个有界阻塞队列(BoundedBlockingQueue)的实现,该队列具有固定容量,适用于需要限流的高并发场景。主要特点包括:1) 使用双条件变量(notEmpty_和notFull_)实现双向阻塞,生产者队列满时阻塞,消费者队列空时阻塞;2) 采用boost::circular_buffer作为底层容器,提供固定容量的环形存储结构;3) 通过RAII锁和移动语义保证线程安全和高效操

本文详细分析了Muduo网络库中的BlockingQueue实现,这是一个基于std::deque的线程安全阻塞队列。该队列通过互斥锁(MutexLock)和条件变量(Condition)实现线程安全,支持生产者-消费者模型。核心特性包括:1) put()方法支持左右值插入,利用移动语义减少拷贝;2) take()方法采用while循环防止虚假唤醒;3) 提供drain()方法批量获取数据;4)

摘要:本文系统介绍了Linux文件系统的核心概念与C++操作实践。首先解析了文件系统基础架构,包括inode、VFS等关键组件,并对比了符号链接与硬链接的区别。随后详细讲解了C++操作文件的三种方式:C++17 filesystem库、系统调用和RAII封装技术。重点剖析了文件描述符管理、高性能日志写入和大文件分片处理等工业级场景的实现方案,并提供了异步写入、批量刷盘等优化技巧。最后总结了权限控制

本文深入探讨了C++11引入的unique_ptr智能指针在Linux开发中的应用。作为独占式智能指针,unique_ptr通过禁用拷贝、支持移动语义确保内存安全,其轻量级特性使其成为管理动态内存的首选。文章详细解析了unique_ptr的基本用法、底层实现原理,并重点介绍了如何通过定制删除器管理Linux系统资源(如文件描述符、互斥锁等)。同时对比了unique_ptr与auto_ptr、sha








