logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Linux下敲入一个字母,操作系统到底做了什么?

摘要:Linux系统下键盘输入涉及完整的硬件-内核-用户态交互链路。硬件层通过扫描码触发中断,内核层由输入子系统将扫描码转换为标准字符并存入缓冲区,用户态程序通过系统调用读取。开发中可通过修改终端模式实现实时按键响应,需注意中断处理不可阻塞、内核缓冲机制等关键点。典型应用场景包括嵌入式系统开发、终端工具定制等,正确处理该链路对构建稳定输入系统至关重要。

文章图片
#linux#运维#服务器
解析muduo源码之 TcpServer.h & TcpServer.cc

TcpServer是Muduo网络库中TCP服务器的核心控制器,采用主从Reactor模型实现高性能网络服务。其主要功能包括: 架构设计: 主Reactor(mainLoop)负责接收新连接 从Reactor(IO线程池)处理连接读写 通过轮询方式均衡分配连接 核心机制: 使用Acceptor接收连接 通过EventLoopThreadPool管理IO线程 用ConnectionMap管理所有活跃

文章图片
#c++
解析muduo源码之 Acceptor.h & Acceptor.cc

本文详细解析了Muduo网络库中的Acceptor类实现。Acceptor作为TCP连接接收器,主要负责监听端口、接受新连接,运行在主事件循环(mainReactor)中。其核心功能包括:创建非阻塞监听socket,绑定地址和端口,设置socket复用选项;通过Channel管理监听socket事件,当有新连接时触发handleRead回调;处理文件描述符耗尽(EMFILE)等边界情况,采用预置i

文章图片
#网络#服务器#运维
解析muduo源码之 EPollPoller.h & EPollPoller.cc

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

文章图片
#c++
解析muduo源码之 Socket.h & Socket.cc

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

文章图片
#c++
解析muduo源码之 ThreadPool.h & ThreadPool.cc

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

文章图片
#c++
解析muduo源码之 CountDownLatch.h & CountDownLatch.cc

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

文章图片
#c++
解析muduo源码之 Mutex.h

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

文章图片
#c++
解析muduo源码之 Condition.h & Condition.cc

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

文章图片
#c++
解析muduo源码之 BoundedBlockingQueue.h

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

文章图片
#c++
    共 22 条
  • 1
  • 2
  • 3
  • 请选择