logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

手搓一个简易 Linux 进程池:巩固进程知识

本文介绍了如何通过实现一个迷你进程池来巩固Linux进程编程的核心概念。该进程池包含主进程、工作进程和管道三个角色,采用轮询策略分发任务。代码展示了进程创建、管道通信、任务执行和进程回收的完整流程,重点讲解了避免僵尸进程、管道阻塞和描述符泄漏等常见问题。通过这个实践项目,读者可以深入理解fork、pipe、waitpid等系统调用的实际应用,掌握父子进程协同工作的完整生命周期。文章还提出了支持ex

文章图片
#linux#c++
效率与安全并重:C++ 线程安全

本文系统介绍了C++中实现线程安全的核心工具与方法。主要内容包括:互斥锁(std::mutex)的基本使用与RAII管理;读写锁(std::shared_mutex)在读多写少场景下的应用;原子操作(std::atomic)的性能优势;条件变量(std::condition_variable)实现线程间同步;线程局部存储(thread_local)避免竞争;以及单例模式的线程安全实现。文章还总结了

文章图片
#c++#linux
搞懂互斥、同步与异步:C++并发编程

本文深入浅出地讲解了并发编程中的三大核心概念:互斥、同步和异步。通过生活类比和C++实战代码,展示了互斥如何保护共享资源(如std::mutex),同步如何协调线程执行顺序(如std::condition_variable),以及异步如何提高程序响应能力(如std::async)。文章还通过生产者-消费者模型演示了三者的综合应用,并澄清了常见误区。最后总结了三者的区别与联系,帮助读者建立清晰的并发

文章图片
#linux#c++
互斥锁与条件变量:优雅的线程同步

本文深入讲解了多线程编程中的互斥锁和条件变量两大核心同步机制。详细分析了其必须配合互斥锁使用的原因,以及如何避免虚假唤醒。文章通过生产者-消费者模型的完整代码示例,展示了二者的协同工作方式,并总结了常见误区和最佳实践,包括锁粒度控制和通知方式选择等。

文章图片
#c++#linux
C++多线程编程:从入门到生产者-消费者模型

本文系统介绍了多线程编程的核心概念与实践。详细讲解了线程模型、生命周期状态转换,并通过代码示例演示了线程创建、竞态条件、互斥锁使用和生产者-消费者模型等核心内容。

文章图片
#linux#c++
Linux管道(Pipe)深度指南:从原理到实战

本文深入解析Linux管道通信的核心技术,对比匿名管道与命名管道的特性差异。详细讲解匿名管道的fork实现和命名管道的mkfifo用法,重点剖析管道阻塞行为和PIPE_BUF原子性问题。文章包含多进程通信的典型代码示例,指出常见陷阱如死锁、数据截断等,并提供strace等调试工具的使用方法。最后介绍双向通信方案和全双工socketpair的进阶用法,帮助开发者深入理解Linux进程间通信机制,规避

文章图片
#linux#c++
中断 · 软硬中断 · 时钟中断 · 缺页中断——从CPU引脚到操作系统调度

本文深入解析Linux系统中的中断机制,从硬件到内核的全路径视角,重点对比了硬件中断、软件中断、时钟中断和缺页中断四大类型及其对程序性能的影响。

文章图片
#linux#c++
C++命名空间域

在C++中,命名空间(Namespace)是一种用于组织代码、避免命名冲突的机制,而“命名空间域”可以理解为命名空间的作用域,即在命名空间内定义的标识符(如变量、函数、类等)的可见性和访问范围。

#c++#算法
C++ 智能指针详解

C++智能指针是自动管理动态内存的RAII工具,主要包括unique_ptr、shared_ptr和weak_ptr三种类型。智能指针能有效防止内存泄漏,提升代码安全性和可维护性。

文章图片
#c++
到底了