
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
摘要: 本文介绍了CMake的基本概念与使用方法。CMake是一个跨平台的开源构建工具,通过CMakeLists.txt配置文件生成不同平台的原生构建脚本(如Makefile),简化大型项目的编译管理。文章详细讲解了CMake的安装方法(Ubuntu、VSCode插件),并通过一个简单的“Hello World”示例演示了CMake的基本流程:编写CMakeLists.txt(指定最低版本、项目名

本文系统介绍了网络协议的基础知识,主要包含三部分内容:1. 协议基础:阐述了网络协议的定义、OSI七层模型和TCP/IP四层模型,通过寄快递的类比解释了各层功能;2. 网络传输:详细说明了MAC地址、局域网通信原理和数据报头的封装/解封装过程;3. Socket编程准备:讲解了IP地址、端口号、Socket概念以及TCP/UDP协议的核心机制和典型应用场景,并介绍了网络字节序的标准。文章通过生活化

本文介绍了四种经典设计模式及其在Linux系统编程中的应用: 单例模式:分为饿汉模式(启动时创建)和懒汉模式(首次调用创建),重点解决线程安全和资源管理问题。 责任链模式与消息队列:通过SystemV消息队列实现进程通信,并设计责任链处理消息(格式化、保存、备份),实现高内聚低耦合。 建造者模式与信号量:封装SystemV信号量,使用建造者模式灵活配置信号量集合,实现父子进程同步打印。 生产者消费

本文介绍了高并发内存池中CentralCache的实现细节。CentralCache作为线程缓存和页缓存之间的中间层,采用哈希桶结构管理不同大小的内存块。文章详细解析了CentralCache的核心组件:Span结构体用于管理特定大小的内存块自由链表,SpanList则实现了带锁的Span链表操作。CentralCache通过单例模式实现,包含获取Span、分配内存块给线程缓存等关键功能。其中,F

摘要:本文介绍了Yupureki的个人专栏项目——高并发内存池的优化方案。针对PageCache锁竞争严重的性能问题,采用Google TCMalloc中的基数树(Radix Tree)数据结构进行优化,通过读写分离机制避免了线程竞争。文章详细展示了基数树的三种模板实现(单层、双层、三层数组),并提供了性能测试代码对比优化前后的malloc/free效率。项目完整代码已开源在GitHub,适用于3

本文介绍了高并发内存池的内存回收机制,分为ThreadCache、CentralCache和PageCache三个层级。ThreadCache将多余内存块归还给CentralCache,CentralCache通过PageCache的哈希表查找对应Span进行回收。当Span所有内存块都回收后,CentralCache将其归还给PageCache。PageCache会对回收的Span进行前后合并以

本文介绍了Linux系统中进程管理的核心概念和操作。主要内容包括:1.进程创建(fork函数)的实现机制和写时拷贝技术;2.进程终止的三种场景和退出方法(exit/_exit),以及退出码的含义;3.进程等待的必要性(避免僵尸进程)和实现方法(wait/waitpid),包括如何获取子进程状态;4.进程替换(exec函数族)的原理和使用方法,列举了6种常见exec函数的特点和使用场景,并给出了典型

本文介绍了Linux系统中的命令行参数和环境变量机制。命令行参数通过main()函数的argv和argc传递,用于指定操作对象、控制命令行为、传递配置信息等。环境变量则通过PATH等变量存储系统配置,可通过main()的env参数、environ变量或getenv()函数获取。文章还深入分析了进程的虚拟地址空间原理,解释了父子进程变量地址相同但值不同的现象,这是由于写时拷贝机制导致虚拟地址映射到不

本文介绍了Linux系统中常用的15个基础命令及其用法,涵盖文件查看、时间日期、文件查找、压缩解压等日常操作。主要内容包括:1)more/less/head/tail等文件查看命令;2)date/cal时间日期命令;3)find/whereis文件查找命令;4)zip/tar压缩解压命令;5)alias/grep等实用工具;6)重要热键和扩展命令。每个命令都提供了基本语法、常用选项和示例说明,适合

本文深入探讨了C++异常处理与智能指针的关键技术。异常处理通过throw抛出对象传递错误信息,由catch捕获处理,实现了错误检测与处理的分离。智能指针(unique_ptr、shared_ptr、weak_ptr)基于RAII思想自动管理资源,解决了内存泄漏问题。文章详细解析了异常匹配规则、栈展开过程、智能指针实现原理与使用场景,特别强调了shared_ptr循环引用问题及weak_ptr解决方








