logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

C++ 设计模式之单例模式详细介绍

唯一性:类的实例在整个程序中只能有一个,禁止外部通过new、拷贝等方式创建多个实例。全局访问:提供一个静态方法(如),让程序任何地方都能便捷访问该实例。可控初始化:根据需求选择“提前初始化”(饿汉式)或“延迟初始化”(懒汉式),平衡资源占用与启动速度。实现方式线程安全(C++11+)延迟初始化代码复杂度内存泄漏风险推荐优先级Meyers 单例(局部静态)是是极低无★★★★★饿汉式(全局静态)是否低

文章图片
#c++#设计模式#单例模式 +4
C++ 设计模式之观察者模式详细介绍

抽象接口是解耦的核心,确保被观察者和观察者仅依赖抽象,不依赖具体实现。

文章图片
#c++#设计模式#观察者模式 +4
C++ 设计模式之工厂模式详细介绍

由一个单一工厂类负责所有产品的创建,通过传入参数(如类型标识),工厂类动态决定创建哪种具体产品。本质是“集中式创建”,将所有产品的创建逻辑封装在一个工厂中。为解决简单工厂的“开闭原则”问题,将单一工厂拆分为多个具体工厂:每个具体产品对应一个具体工厂,抽象出统一的工厂接口,新增产品时只需新增“具体产品 + 具体工厂”,无需修改现有代码。本质是“分拆式创建”,将创建职责分散到各个具体工厂。当系统中存在

文章图片
#c++#设计模式#java +2
libevent2-介绍

摘要: Libevent在Windows上通过IOCP实现高性能异步I/O,IOCP基于事件驱动模型,包含I/O端口、完成端口和线程池,适用于高并发网络应用。Libevent解决了网络编程中的痛点:1)提供高效链式缓冲区(evbuffer),减少数据拷贝和系统调用;2)封装底层I/O操作,简化事件驱动编程;3)优化多线程锁机制,确保数据安全。其核心是将Reactor模式封装为事件库,分离I/O检测

#linux#windows#服务器
lambda表达式中的循环引用问题详解

类中lambda“捕获自己”,本质是捕获指向当前类实例的引用/指针捕获this指针(非shared_ptr管理的类):lambda 持有当前类实例的裸指针(this捕获shared_ptr实例(类继承):lambda 持有当前类实例的强引用(shared_ptr<当前类>lambda 必须被类实例“长期持有”(如作为类的成员变量),才可能形成循环引用。若lambda仅是局部变量(函数内临时创建,不

文章图片
#单例模式#java#开发语言 +4
C++ 无锁队列(Lock-Free Queue)详细介绍

无锁队列是一种通过原子操作和内存序实现并发安全的数据结构,避免锁竞争带来的性能开销。其核心设计依赖C++的std::atomic和内存序机制,需解决ABA问题、内存回收、虚假共享等难点。常见实现如Michael-Scott队列使用CAS操作和标记指针来保证多线程安全。无锁队列适用于高并发场景,但实现复杂度较高,需谨慎处理线程同步和内存管理问题。

文章图片
#c++#开发语言#linux +2
C++ & Linux 中 GDB 调试与内存泄漏检测详解

工具/功能GDB 调试Valgrindmtrace核心用途定位崩溃、逻辑错误全面内存检测(泄漏+错误)快速内存检测(泄漏+错误)简单内存泄漏检测编译要求需-g选项无(加-g更好)需需-g选项运行速度接近原程序慢(10-50倍)较快(2-5倍)接近原程序适用场景开发/调试阶段测试阶段开发/测试阶段简单程序/嵌入式环境最佳实践开发 C++ 程序时,编译时加,实时检测内存错误和泄漏。程序崩溃时,开启 c

文章图片
#c++#linux#算法 +3
到底了