自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

weixin_45715405的博客

每天进步一点点

  • 博客(560)
  • 资源 (14)
  • 收藏
  • 关注

原创 c语言链表(插入,删除,更改,查找)

初始化链表int main( ) { int i; struct link // 定义链表的类型 { int data; // 数据区 struct link *next; // 地址区用来存放下一个元素的地址 }; struct link *p = (struct link *) malloc(sizeof(struct link)); // 创建一个头结点 就是指向链表的第一个元素 struct link *te

2021-05-12 23:31:04 5318 16

原创 为什么资深C++开发者大部分选vector?揭秘背后的硬核性能真相!

摘要:本文深入探讨了C++开发中普遍选择std::vector而非std::list的技术原因。现代计算机体系结构中,vector的连续内存布局具有显著优势:其缓存友好性(充分利用CPU多级缓存、硬件预取)、高效内存带宽利用,以及编译器优化潜力(自动向量化、循环展开)。相比之下,list的离散节点结构导致频繁缓存未命中、指针跳跃和难以优化。性能测试显示vector遍历速度通常比list快5-10倍,这解释了为何90%以上的高性能场景开发者会优先选择vector。

2025-07-14 23:40:38 34

原创 纯C++11实现!零依赖贝叶斯情感分析系统,掌握机器学习系统工程化的秘密!

本文详细介绍了基于C++11标准库实现的贝叶斯情感分析系统,重点剖析了其模块化架构和核心算法实现。系统采用零依赖设计,包含文本预处理、特征提取和朴素贝叶斯分类等完整流程。关键技术包括:1)高效稀疏向量数据结构;2)UTF-8中文字符检测与贪婪分词算法;3)情感分析优化的停用词策略;4)基于词频和文档频率的特征选择方法。该系统充分展示了C++标准库在机器学习任务中的潜力,兼顾性能和可移植性。

2025-07-14 14:59:31 27

原创 十万字教程教你写高性能epoll代码:9大痛点+源码实战,避坑指南来了!(下篇)

本文解析了epoll_wait系统调用的返回值语义及常见错误处理方式。epoll_wait返回值有三种情况:大于0表示就绪文件描述符数量,等于0表示超时,小于0表示出错。常见错误包括忽略返回值检查、信号中断处理不当和事件数组边界问题。文章提供了正确的处理模式:检查返回值,区分EINTR等可恢复错误,合理设置事件数组大小,并实现完整的错误处理框架。关键点在于正确处理各种返回值情况,确保程序在信号中断、错误发生时仍能稳定运行。

2025-07-14 12:56:55 93

原创 十万字教程教你写高性能epoll代码:9大痛点+源码实战,避坑指南来了!(上篇)

本文深入剖析Nginx中epoll的高效实现,重点讲解边缘触发(ET)与水平触发(LT)模式的核心差异。通过源码分析揭示Nginx处理ET模式的精妙设计,包括instance机制、延迟处理等。文中提供了ET模式下的正确读取实现示例,并分享一个电商平台因ET模式处理不当导致连接"假死"的真实案例。最后通过性能测试数据对比ET与LT模式的差异,证明ET模式在同等条件下可获得更高QPS和更低延迟。文章为网络编程中的epoll使用提供了宝贵实践指导。

2025-07-14 12:06:06 149

原创 千万别踩雷!为什么资深C++开发者坚决反对重载&&、||和逗号操作符?

摘要:重载C++中的&&、||和,操作符会破坏其内置特性,导致短路求值失效和求值顺序不确定,带来性能问题和潜在错误。内置操作符的短路特性确保安全高效的条件检查,而重载后这些特性将丢失,可能引发程序崩溃或逻辑错误。建议使用命名函数替代重载,保持代码清晰和安全。设计类时应优先考虑明确性和可维护性,避免重载这些特殊操作符,以维护程序正确性和性能。

2025-07-13 23:12:48 7

原创 读懂Nginx简化版:为什么复杂不如理解本质?

本文深入剖析了nginx架构的核心设计思想,揭示了高性能Web服务器的技术本质。文章通过对比nginx原版与简化实现的差异,重点阐述了事件驱动模型、内存管理、epoll机制等关键技术: 事件驱动模型通过解耦连接状态与执行线程,实现高效的I/O处理; 多进程架构与单进程模型的权衡体现了工程复杂度与收益的平衡; epoll机制的O(1)复杂度通知和ABA问题解决方案; HTTP状态机设计实现高效解析与增量处理; 连接池优化与内存管理策略展示了对象复用和生命周期控制的重要性。 这些设计体现了"简单可靠优

2025-07-13 19:09:41 8

原创 从源码看Nginx:Nginx事件驱动架构深度拆解来了

Nginx高并发架构的核心设计解析 本文深入剖析了Nginx支持百万级并发的底层机制。Nginx采用事件驱动架构,将网络连接抽象为轻量级事件对象(ngx_event_t)和连接对象(ngx_connection_t)。事件结构通过位域优化实现内存高效利用,并设计了instance字段防止事件混乱。连接结构实现了读写分离和I/O抽象,支持不同协议的灵活扩展。Nginx通过连接池管理和状态机机制,实现了网络资源的智能调度和复用。这种设计使Nginx能以少量工作进程高效处理海量并发请求,成为高性能Web服务器的典

2025-07-13 15:09:02 43

原创 C++电商推荐系统背后的Apriori算法:从0到1实现电商关联规则推荐系统

本文深入解析了一个C++电商推荐系统的关联规则挖掘实现。核心内容包括:1)三大关键指标(支持度、置信度、提升度)的数学定义与C++实现;2)Apriori算法的核心思想、剪枝策略与完整实现流程;3)系统的数据结构设计优化与性能考量。文章通过代码示例详细展示了如何高效计算关联规则,并解释了底层设计哲学,如哈希表选择、指针返回等决策对系统性能的影响。该实现巧妙运用Apriori性质进行剪枝,通过内存布局优化提升效率,为电商推荐提供了可靠的技术方案。

2025-07-13 13:55:20 21

原创 现代C++中仍需要显式转型?最好的转型是不需要转型的设计

C++ 转型操作符深度解析 现代 C++ 提供了四种类型安全的转型操作符,各有其特定用途: static_cast:处理编译期可确定的类型转换,如数值精度调整(double→int)、继承层次转换(基类↔派生类)和void*恢复。适用于程序员能确保安全的场景。 const_cast:专用于添加/移除const属性,主要用于接口兼容性调整(如调用C库函数)。使用时必须确保不会修改真正的const对象,否则导致未定义行为。 dynamic_cast:基于RTTI的运行时类型检查,安全实现向下转换(基类→派生类)

2025-07-12 19:59:14 11

原创 使用C++11教你从0到1实现一个string_view,教你零拷贝设计深度解析

摘要 现代C++中string_view的设计体现了零开销抽象的精髓,通过非拥有语义、零拷贝和轻量级三大核心原则彻底优化了字符串处理性能。其实现架构包含: 极简数据结构 - 仅16字节的指针+长度组合,放弃容量管理,确保缓存友好性 类型安全设计 - 将iterator与const_iterator等同,从类型系统强制只读语义 构造安全体系 - 多重构造函数针对不同场景优化,包含编译期strlen、长度校验和模板泛化 零开销迭代 - 直接使用原始指针作为迭代器,实现完全无额外开销的遍历 这种设计使子字符串操作

2025-07-12 19:06:09 30

原创 Nginx模块注册全流程揭秘:为什么Nginx模块化架构依然是Web服务器的“金标准”?

Nginx模块化架构深度解析:高性能Web服务器的核心设计 本文深入剖析了Nginx模块化架构的核心机制,揭示了其高性能背后的设计哲学。主要内容包括: 模块化架构设计:基于ngx_module_t结构体实现功能解耦,支持动态扩展 完善的类型体系:分为Core、Event、HTTP等模块类型,各司其职 双重索引机制:全局index和ctx_index确保模块高效定位 配置系统设计:ngx_conf_t结构支持分层配置继承与合并 生命周期管理:从init_master到exit_master的完整回调体系 这些

2025-07-12 15:14:43 36

原创 现代C++打造音乐推荐系统:看看如何从0到1实现

本文介绍了一个基于C++开发的现代化音乐推荐系统,采用四层架构设计(数据层、算法层、引擎层、应用层),集成了协同过滤、基于内容的推荐等多种算法。系统核心组件包括:1)数据管理组件,负责智能生成音乐数据和用户评分模拟;2)矩阵运算组件,提供相似度计算等数学支持;3)协同过滤算法组件,实现用户和物品的协同推荐;4)基于内容的推荐组件,通过分析音乐特征进行推荐。系统采用策略模式集成多种算法,支持自适应算法选择和A/B测试评估,实现高效精准的音乐个性化推荐。

2025-07-12 12:38:47 31

原创 C++设计秘籍:为什么所有参数都需类型转换时,非成员函数才是王道?

摘要: 在C++中,当操作需要支持所有参数的隐式类型转换时,应选择非成员函数而非成员函数。这是因为成员函数的this指针不接受隐式转换,导致不对称行为(如a + 3可行而3 + a失败)。非成员函数允许所有参数(包括原this指向的对象)参与转换,实现完全对称的操作。典型应用包括算术/比较运算符(如Complex类支持double + Complex)和流操作符(必须非成员实现)。设计原则是:对称操作、需类型转换或语言强制要求的场景应优先采用非成员函数。

2025-07-11 22:46:37 48

原创 C++重构必看:用std::optional和std::variant告别“删库跑路”式空指针崩溃!

本文介绍了C++17中std::optional和std::variant两个特性,用于重构传统C++代码。std::optional解决了表示"可能没有值"的问题,替代了空指针、特殊值和布尔标志等不安全方式。它通过联合体存储、状态标记和自动生命周期管理,提供了类型安全的可选值表示。std::variant则实现了类型安全的联合体,能存储多种类型中的一种,自动管理生命周期并提供编译时检查。文章通过代码示例展示了如何从指针重构到std::optional,以及std::variant的核心

2025-07-11 18:38:56 36

原创 用纯C++实现鸢尾花机器学习分类,通过代码去理解机器学习项目

这是一个基于鸢尾花数据集的机器学习分类项目,使用纯C++实现,不依赖任何第三方库。项目适合C++初学者和机器学习入门者,代码结构清晰,注释详细,展示了完整的机器学习流程。通过这个项目,你将看到:如何用面向对象思想分解复杂的ML问题、模块间如何优雅地协作、数据如何在系统中高效流转,以及性能与设计如何完美平衡。这个鸢尾花分类系统是一个完整的机器学习生态,由四个核心模块组成,每个模块都有明确的职责边界和精心设计的接口:第一层:基础设施层 - Matrix类的设计哲学职责定位:高性能计算的基石Matrix类不

2025-07-11 13:00:56 21

原创 揭秘Nginx零拷贝底层原理:如何用ngx_buf_t和ngx_chain_t玩转高并发?

精心设计的数据结构ngx_buf_t统一了内存和文件数据的处理提供了灵活的链表结构位域标志优化了内存使用高效的零拷贝机制利用sendfile系统调用避免用户态拷贝智能的缓冲区合并算法页面对齐优化提升性能灵活的应用场景静态文件服务的高效传输反向代理的数据转发大文件传输的分段处理优化策略内存池化管理减少分配开销缓冲区复用降低内存碎片页面对齐优化提升 I/O 性能这些设计使得 Nginx 能够在高并发场景下保持卓越的性能表现,为现代 Web 服务提供了坚实的技术基础。

2025-07-11 10:36:08 29

原创 C++构造函数中虚函数“失效”?揭秘背后设计哲学与解决方案,程序员必读!

通过合理的设计模式(如工厂模式、模板方法模式、CRTP等),我们不仅能避免这个陷阱,还能创建出更加清晰、安全和高效的代码架构。在这个过程中,对象经历了从"不存在"到"完全存在"的转变,而虚函数机制只有在对象完全存在时才能正常工作。作为一个有经验的开发者,你想在构造函数中记录每个组件的创建过程。C++ 编译器采用这种设计不是偶然的,而是为了保护我们免受更严重的错误。“在软件设计中,最好的解决方案往往来自于对限制的深刻理解,而不是对规则的盲目遵循。在每个阶段,对象只"知道"当前已构造完成的部分。

2025-07-10 16:21:11 14

原创 从Nginx看高性能字符串处理:字符串处理机制如何助你毫秒级响应?

Nginx采用带长度字符串结构体ngx_str_t(含长度字段和数据指针)替代传统C字符串,显著提升了性能和安全性。其设计特点包括:1)编译期长度计算;2)二进制数据安全;3)高效大小写转换(位操作);4)内存池集成;5)优化字符串比较/搜索算法。这种设计避免了空字符终止符的遍历开销,支持O(1)长度获取,并通过宏和高效函数实现快速初始化与操作,特别适合高性能Web服务器场景。

2025-07-10 14:53:19 10

原创 看不懂公式,不如啃透这个:纯C++手写字符识别系统,通过代码去理解理论

/ 在main.cpp中修改网络结构// 增加隐藏层大小// 修改超参数layers,std::make_unique<ReLU>(), // 使用ReLU激活函数0.001, // 降低学习率0.95 // 增加动量// 调整训练参数// 增加训练轮数项目的真正价值不仅在于它实现了一个可工作的神经网络系统,更在于它为深度学习的学习者提供了一个透明、可理解、可扩展的参考实现。:让深度学习不再神秘,让每一行代码都充满教育意义。

2025-07-10 10:43:16 20

原创 多态遇上数组,C++程序员最容易踩的内存坑,你中招了吗?

在C++中,将多态与数组结合使用会导致严重问题。由于派生类大小可能不同,指针算术假设数组元素大小一致,当通过基类指针访问派生类数组时,计算的内存地址会出错。这可能导致数据损坏或程序崩溃。安全替代方案包括:1) 使用指针数组或智能指针容器;2) 采用std::variant(C++17)。核心教训是:绝对不要用多态方式处理数组,必须通过指针或引用来实现多态行为。

2025-07-09 20:46:32 29

原创 别再吐槽 C++ 标准库了!Nginx这两套数据结构,告诉你高性能的精髓

让我们首先看看void *elts;// 指向数组元素的指针// 当前数组中元素的数量// 单个元素的大小// 数组的容量(已分配的元素数量)// 关联的内存池elts:通用指针,指向实际的数组存储区域nelts:当前有效元素数量,相当于std::vector的size()size:单个元素的字节大小,支持任意类型的元素nalloc:已分配的总容量,相当于std::vector的capacity()pool:关联的内存池,这是与标准库最大的区别。

2025-07-09 14:10:33 11

原创 谁说C++不能做AI?我用纯C++11,从0到1构建了一个房价预测模型

本文介绍了一个纯C++11实现的波士顿房价预测系统,核心创新在于自研的矩阵运算库和神经网络框架。系统采用三层架构设计:基础层(Matrix.h/cpp)实现高效矩阵运算,算法层(NeuralNetwork.h/cpp)构建神经网络核心,应用层(main.cpp)完成完整机器学习流程。关键技术亮点包括:1) 手写矩阵库实现内存安全与运算符重载;2) 面向对象的神经网络框架,支持前向/反向传播;3) 多态激活函数实现;4) 特征工程处理13维房价数据。该系统从底层数学运算到高层算法实现均为自主开发,展示了C++

2025-07-09 12:18:39 25

原创 当面试官问我神经网络原理:我直接打开了这个C++实现的垃圾邮件检测项目

/ 1. 创建自定义训练数据// 添加垃圾邮件样本Matrix({6, 4, 5, 3, 0.8}, 5, 1), // 特征向量Matrix(1, 1, 1.0) // 标签(垃圾邮件)// 添加正常邮件样本Matrix({0, 0, 1, 0, 0.2}, 5, 1), // 特征向量Matrix(1, 1, 0.0) // 标签(正常邮件)// 2. 数据预处理// 3. 创建和训练网络// 4. 模型评估。

2025-07-08 21:41:53 35

原创 C++已死?我用它从零撸一个高性能列式内存数据库,性能秒杀传统方案!

StdMemoryDB展示了如何在C++中实现一个现代化的内存数据库系统。该项目的价值不仅在于其完整的功能实现,更在于其优雅的设计和清晰的代码结构。现代C++编程:模板、智能指针、原子操作等C++11特性的实际应用数据库系统设计:从存储层到事务管理的完整架构并发编程:MVCC、原子操作、线程安全等并发技术性能优化:内存管理、缓存友好的数据结构设计软件工程:模块化设计、接口抽象、单元测试等最佳实践。

2025-07-08 16:31:10 21

原创 神经网络到底“深”在哪?一文读懂(附带C++代码)

本文以手工艺品工厂为类比,系统介绍了深度学习的基本原理和实现方法。文章首先将神经网络比作工厂中的不同层级工人(输入层、隐藏层、输出层),通过层层递进的方式处理信息。与传统机器学习相比,深度学习的优势在于自动特征提取和层次化特征处理能力。文中还详细讲解了深度学习的核心数学运算,包括矩阵乘法、激活函数(Sigmoid、ReLU、Tanh)和损失函数(均方误差、交叉熵)等,并提供了C++实现代码框架。通过工厂学徒的成长过程,生动阐释了神经网络从特征学习到自主决策的工作原理。

2025-07-08 12:26:32 13

原创 就一个select函数,Windows和Linux竟有这么多坑?I/O多路复用跨平台避坑指南。

Windows压根儿不用这参数,随便填都行,但为了兼容Berkeley sockets,还是保留了。但只要你把数据类型、初始化、关闭、错误处理这些差异抽象好,接口设计简单点,啥问题都能解决。咱们不整虚的,直接上干货,配代码和例子,保你一看就懂。别小看这区别,随手写个代码不处理,Windows上跑得好好的,扔Linux上就挂。Linux用socket函数那是“开箱即用”,Windows可不行,得先调用。会把整个进程的socket功能关掉,所以最好在程序退出时才调用,别随便乱关。,但用它关socket会崩。

2025-07-07 21:48:27 18

原创 “蒙眼下山,C++为杖”,万字长文+完整代码,搞懂深度学习优化,看这篇就够了。

本文深入探讨了优化算法的数学原理与实现,通过"蒙眼登山者"的比喻生动阐释了梯度下降的核心思想。文章首先从微积分基础入手,讲解导数如何指引参数优化方向;然后扩展到多维空间的梯度概念,详细解析其几何意义;最后通过C++代码实现展示了数值计算导数与梯度的方法。文章强调梯度在深度学习中的关键作用:作为方向指南针、步长调节器和收敛检测器,为后续优化算法奠定理论基础。

2025-07-07 11:34:32 1025

原创 硬核!万字长文肝完深度学习的“心脏”:概率论与统计学(代码复现)

在人工智能浪潮席卷全球的今天,深度学习已经成为了技术革新的核心驱动力。是什么数学理论支撑着这座巍峨的技术大厦?答案是概率统计。如果说深度学习是一座宏伟的建筑,那么概率统计就是它的地基和钢筋。没有坚实的概率统计基础,再复杂的神经网络也不过是空中楼阁。正如一位资深的建筑师必须深刻理解力学原理一样,一位真正的深度学习专家也必须精通概率统计的精髓。用分布Q来编码真实分布P所需要的平均信息量。深度学习的几乎每一个重要概念都可以在概率统计的框架内得到优雅的解释。神经网络本质上是参数化的概率模型训练过程。

2025-07-06 17:43:33 40

原创 C++已死?这篇文章让你看到它在深度学习底层有多硬核!

本文系统介绍了线性代数核心概念及其在深度学习中的应用,通过C++实现矩阵运算库。主要内容包括:1) 从标量、向量、矩阵到张量的数据层级解析;2) 线性变换的几何意义及其在神经网络中的体现;3) 矩阵运算的C++实现,包括加法、标量乘法、点积等基础操作;4) 深度学习中的实际应用场景,如梯度累积、权重更新等。文章采用生活化比喻解释数学概念,结合代码示例展示工程实现,为读者构建从理论到实践的完整知识体系。

2025-07-06 14:30:31 38

原创 C++这个头文件库,让进度条颜值暴涨,多种样式任你选择!

这篇文章介绍了一个基于C++11的终端进度条库,主要特点包括:1) 纯头文件实现,无需编译即可使用;2) 提供四种进度指示器(线性、块状、旋转和不确定进度条);3) 支持Unicode字符宽度计算和多线程安全;4) 提供静态和动态两种多任务管理模式。该库通过模板元编程和智能指针等技术,展示了C++在抽象封装、线程安全和性能平衡方面的设计理念,为命令行工具提供了美观且实用的进度显示方案。

2025-07-05 11:08:06 25

原创 你以为配置解析很简单?扒开 Nginx 源码,这 2 个设计秒杀传统方案

Nginx配置解析机制深度解析:本文系统剖析了Nginx高性能配置系统的核心原理,重点探讨了三个关键环节:1)宏观工作流程,从启动初始化到cycle生效的完整链路;2)核心数据结构设计,包括指令定义(ngx_command_t)、解析上下文(ngx_conf_t)和配置载体(ngx_cycle_t);3)模块化扩展机制。研究发现Nginx通过解耦式数据结构和上下文设计模式,实现了配置解析的高效性与可扩展性,其配置最终转化为ngx_cycle_t结构,成为工作进程的运行基础。该机制是Nginx高性能的重要支撑

2025-07-04 09:41:18 32

原创 Nginx 内存泄漏?大部分故障根源在这!内存池设计 3 大雷区揭秘

Nginx ngx_pool_t 内存池源码深度解析报告 第一部分:设计哲学与数据结构剖析 核心设计思想 Nginx设计ngx_pool_t主要解决高并发场景下的三类问题: 减少系统调用:通过预分配内存块减少频繁调用malloc/free 避免内存碎片:固定大小内存块分配策略 统一资源管理:简化请求生命周期的内存管理 核心数据结构分析 ngx_pool_t结构体 struct ngx_pool_s { ngx_pool_data_t d; // 内存块数据区 size_t max; // 小块内存分配阈值

2025-07-03 22:12:12 22

原创 别再死啃文档!1个案例拆解Nginx Master-Worker,面试再问架构直接甩答案

Nginx源码学习路线图提供了一套系统化的学习体系,从基础架构到高级特性共分四个阶段:1)理解多进程架构、核心数据结构与模块系统;2)深入事件驱动模型,包括I/O多路复用和定时器;3)研究HTTP模块,涵盖请求处理流程、协议解析和过滤器链;4)掌握负载均衡、缓存系统等高级特性。每个阶段都配有核心文件路径、关键知识点和实践要点,强调理论结合实践,通过源码分析掌握Nginx的高性能设计思想。学习周期约12-16周,适合具备C/C++和网络编程基础的开发者。

2025-07-02 17:36:42 38

原创 你以为网络编程很难?这个 C++ 聊天室项目让我 3 天速成,原理全通!

这是一个基于C++开发的多线程客户端-服务器聊天室项目。系统采用Socket网络通信,实现了用户注册登录、公屏群聊、私聊、文件传输等核心功能。项目通过Message类定义通信协议,UserManager和FileManager类管理用户和文件,ChatServer和ChatClient类处理网络连接。项目展现了C++网络编程、多线程处理、面向对象设计等关键技术,包括STL容器、文件I/O、互斥锁等应用。代码结构清晰,包含数据类、管理类和网络核心类等模块。通过Makefile管理项目构建,是学习C++网络编程

2025-07-01 20:47:17 17

原创 从 C++98 到 C++11:值类别体系如何让移动语义颠覆性能天花板?

本文探讨了C++值类别的发展及其对性能的影响。从C++98的简单左值右值概念出发,分析了其在处理临时对象和大数据拷贝时的局限性。重点介绍了C++11引入的五种值类别体系(lvalue、xvalue、prvalue、glvalue、rvalue),通过移动语义实现资源高效转移,避免不必要的拷贝。文中结合数据库连接、HTTP响应等实际案例,展示了如何利用值类别优化性能,并强调移动后对象的状态管理。理解值类别不仅能提升代码效率,还能避免潜在的性能陷阱。

2025-06-30 15:17:03 40

原创 面试官让我手写高并发服务器,我用 500 行代码搞定了这 4 个核心技术…

本文深入解析了现代高性能服务器开发中的核心技术:非阻塞IO与事件驱动架构。通过分析StdRedis项目实现,重点探讨了四个核心知识点:1) 文件描述符的非阻塞模式设置(fcntl),这是事件驱动架构的基石;2) EAGAIN错误处理机制,体现了协作式多任务思想;3) Poll事件循环设计,展现了Reactor模式的精髓;4) 事件驱动的服务器架构模式,采用状态机实现高效连接管理。这些技术共同构成了单线程处理万级连接的解决方案,其核心思想是"不等待,立即响应"和"统一调度,分类处

2025-06-22 17:25:23 38

原创 聊一下你对并发编程的基本理解

综上所述,并发编程是指在单个系统中通过多线程或多进程实现多个任务在时间上的交替执行(逻辑上的同时进行),以提升程序的响应性和效率。**并发(Concurrency)**指的是多个任务在同一时间段内交替执行,CPU通过快速切换任务,使得多个任务“看似同时”执行,但实际上在单核CPU上是时间片轮转的逻辑同时执行。通过std::mutex和std::lock_guard保护共享变量counter,避免竞态条件,确保结果正确。线程是进程中的执行单元,多个线程共享进程的资源和内存空间,线程间通信更高效但也更复杂。

2025-06-21 15:43:10 34

原创 手撕lru

LRU缓存淘汰机制解析:当缓存容量达到上限时,系统会选择淘汰最久未被使用的数据。该算法基于"时间局部性"原理,认为最近访问的数据更可能被再次使用。实现上采用哈希表+双向链表结构,哈希表快速定位数据,链表维护访问顺序。新数据插入链表头部,满缓存时移除尾部节点。典型场景如容量3的缓存,访问顺序1→2→3→1后插入4会淘汰2。虽然有效但存在缓存污染问题,实际应用中常通过分区链表等优化方案改进。理解LRU机制对提升系统性能至关重要。

2025-06-21 15:31:08 36

原创 面试必问:一致性哈希虚拟节点设计 + 环形缓冲区锁优化,附源代码解析

本文将深入探讨C++高性能编程中的两个重要知识点:哈希表优化技巧和环形缓冲区设计。这些知识点来源于workflow项目的深度分析,通过实际的代码实现来加深理解。

2025-06-21 12:41:26 26

yolov5-v7.0注释版本

yolov5-v7.0注释版本

2024-07-08

yolov5-v8命令总结

yolov5-v8命令总结

2024-07-08

qt-mqtt客户端程序

qt_mqtt客户端程序

2023-08-22

OTA远程升级资源文件

OTA远程升级资源文件

2023-08-22

Windows环境下MinGW编译完成Paho C/C++

Windows环境下MinGW编译完成Paho C/C++

2023-08-22

猫狗图片深度学习中使用

猫狗图片

2023-08-17

Linux web服务器

MyWebServer是一个Linux高并发高性能http web服务器

2023-06-15

通过zlog库进行了裁剪的log日志

通过zlog库进行了裁剪的log日志

2023-06-11

Linux多线程高并发服务器

Linux多线程高并发服务器

2023-03-10

C++高程渲染点云伪彩图

C++高程渲染点云伪彩图

2023-01-29

openGL3D显示类

openGL3D显示类openGL3D显示类

2022-12-20

ffmpeg-4.2.1-win32-shared

ffmpeg-4.2.1-win32-shared

2022-10-07

Windows ffmpeg

Windows ffmpeg

2022-10-07

GrapgicsView_employ,qtcharts使用

GrapgicsView_employ,qtcharts使用

2022-09-14

QT-Charts使用

QT-Charts使用

2022-09-13

VTK实战教程.rar

VTK实战教程.rar

2022-09-01

VTK-8.2vs2015编译成功

使用vs2015编译VTK8.2,debug和release

2022-08-29

myOpenGLWidget

myOpenGLWidget

2022-07-14

qtQpainter使用

qt Qpainter使用qt Qpainter使用qt Qpainter使用

2022-07-04

Linux操作mysql数据库使用

Linux操作mysql数据库使用

2022-05-27

Linux常用的函数。

Linux常用函数库。

2022-05-04

FTP库文件,源代码。

FTP库文件,源代码。

2022-04-26

QScintila一个很好用的文本编辑器库

QScintila一个很好用的文本编辑器库

2022-04-20

密钥安全传输平台项目代码

密钥安全传输平台项目代码

2022-02-12

qt_GoldGame.rar

Qt翻金币小游戏

2021-09-06

Qt驾校科目一相关代码

Qt驾校科目一相关代码

2022-02-06

mysql80-community-release-el7-4.noarch.rpm

mysql

2021-11-26

共享内存类c++mmmmmm.zip

c++共享内存类

2021-12-04

openssl-1.1.1-pre6-dev.zip

openssl

2021-11-27

c语言文件加密.zip

文件加密解密源文件

2021-10-25

Project2.rar

文件增删查改排序

2021-08-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除