- 博客(134)
- 收藏
- 关注
原创 C++ 如何实现mysql连接池?
网上大部分MySQL连接池实现都是玩具demo级别的,要么功能简陋,要么bug一堆,根本不能用于生产环境。作为一个写了好几年C++后端的程序员,我来详细聊聊如何实现一个真正可用的MySQL连接池。线程池卖爆了!这次直接上"王炸"——手撸4200行MySQL连接池,8天带你搞定后端核心组件!先说说痛点。直接连接MySQL的问题:性能对比数据:这就是为什么所有互联网公司都必须用连接池的原因。设计要点:3. 智能重连机制这是大多数demo实现忽略的关键点:4. 健康检查线程现有开源方案的问题很多人
2025-07-24 12:13:37
930
原创 我踩坑 1 年总结出的操作系统学习路线,让你少走 99% 弯路!
学习操作系统确实不容易,需要耐心和坚持。但是一旦学会了,你会发现编程的很多问题都能从根本上理解了。记住,学习没有捷径,只有正确的方法和持续的努力。希望这份学习路线能帮到你们,如果有什么问题,欢迎留言讨论!下篇文章我会详细介绍计算机网络的完整学习路线,敬请期待!你现在的努力,决定了你未来的高度!我是小康,专注分享Linux C/C++后端技术、MySQL数据库、Redis缓存、计算机基础原理、各方向学习路线和项目实战等干货内容。关注公众号「跟着小康学编程」,一起在技术路上成长!
2025-05-28 11:02:06
761
原创 后悔没早看到!C语言完整学习路线+3个新颖实战项目,助你月薪破万!
学习 C 语言不是一蹴而就的过程,但只要你按照这个路线图坚持下来,30天后你一定会脱胎换骨!编程没有捷径,但有正确的路径!最重要的是:立即行动!不要再犹豫了,现在就开始你的 C 语言学习之旅吧!每天进步一点点,一个月后你就是编程高手!📢 如果这篇文章对你有帮助,请关注,让更多的编程小白看到!💬 评论区分享你的疑问,我会及时回复的。🔔 记得关注我,下期 C++ 学习路线更精彩!
2025-05-25 16:51:57
819
原创 现代C++中的常量革命:const vs constexpr到底有啥区别?
根据我的经验,这里有几条实用建议:1、能用constexpr就用constexpr它不仅保证了变量不可变,还能提高程序的性能。2、复杂运算尽量在编译时完成把能在编译时做的事情就在编译时做完,让运行时更轻松。3、函数参数常量用const// 防止函数内部修改data4、类成员常量用constexprpublic:看看下面这段代码,思考一下哪里用了const,哪里用了constexpr,为什么这样用?// 处理逻辑...答案留给各位读者思考啦!
2025-05-25 16:47:16
843
原创 只执行一次,不多不少!C++11的线程安全神器std::once_flag与call_once详解
和call_once需要线程安全的一次性初始化单例模式的实现共享资源的延迟初始化需要确保某个操作在多线程环境下只执行一次记住,它是C++11标准库给我们提供的"只执行一次"的保证,远比我们自己实现双重检查锁定更可靠、更简单。你们有没有在项目中用过这个功能?欢迎在评论区分享你的经验!感觉对线程安全有点"开窍"了吗?如果这篇文章帮你解决了困惑,不妨动动手指支持一下!👇❤️一键三连。🔒关注我的公众号「跟着小康学编程」,这里没有枯燥说教,只有接地气的技术分享!
2025-05-25 14:00:26
900
原创 「C++黑魔法」future与promise:不加锁的异步编程,原来可以这么简单!
朋友,想象一下这个场景:你在餐厅点了一份需要20分钟才能做好的复杂菜品。坐在那里盯着厨房门口,等待20分钟(同步等待)服务员给了你个取餐码,菜品好了会通知你,同时你可以刷刷手机或聊聊天(异步等待)显然,第二种方式更高效,对吧?在C++编程中,future和promise就像是这个"取餐码+通知"系统,让你的程序能够优雅地处理异步任务。它们是C++11引入的现代并发编程工具,比传统的线程、互斥锁和条件变量更加简单易用。现在,你已经了解了C++11中future和promise的基本用法。简化异步编程。
2025-05-25 13:52:46
615
原创 玩转C++11多线程:让你的程序飞起来的std::thread终极指南
想象一下,你正在厨房做饭。如果你是单线程工作,那就只能先切菜,切完再炒菜,炒完再煮汤…一项一项按顺序来。但现实中的你肯定是多线程操作啊:锅里炒着菜,同时旁边的电饭煲在煮饭,热水壶在烧水,也许你还能同时看看手机…这就是多线程的威力!在程序世界里,多线程就像多了几个"分身",可以同时处理不同的任务,充分利用多核CPU的性能,让程序跑得飞快。特别是现在谁的电脑不是多核啊,不用多线程简直是浪费资源!
2025-05-25 13:49:37
743
原创 「围观」C++11条件变量到底有多强?五分钟带你彻底搞懂线程同步!
条件变量就像多线程世界里的"微信群通知":让线程之间能够高效协调工作,不必浪费CPU资源去傻等。条件变量用于线程间的等待/通知机制必须与互斥锁配合使用使用 wait() 等待条件满足使用 notify_one()/notify_all() 通知等待的线程总是在循环中检查条件,防止假唤醒掌握了条件变量,你的C++多线程技能就上了一个台阶!再也不用担心线程间如何优雅地协作啦~怎么样?条件变量是不是没那么可怕了?如果这篇文章让你对 C++ 多线程有了新的认识,不妨支持一下!💪有问题?
2025-05-25 13:28:20
798
原创 「程序员救星」C++程序崩溃现场破案指南:让 core dump 乖乖交代真相!
先别被"core dump"这个听起来很高大上的名字吓到。简单来说,core dump就是程序崩溃时的"现场照片"。想象一下,你的程序就像一个在高速公路上奔驰的赛车。突然,"砰"的一声,它撞墙了(崩溃了)。此时操作系统会立即拍下事故现场的全景照片,把车子的状态、路况、方向盘位置等信息都记录下来 - 这就是core dump文件。它包含了程序崩溃那一刻的所有内存信息寄存器状态调用栈等关键数据,是我们破案的重要线索!如何设置系统生成 core dump 文件。
2025-05-25 13:21:45
778
原创 「震惊」这个C++11关键字让多线程不再需要锁?thread_local实战解密 !
全局变量是什么?—— 整个程序共享一份局部变量是什么?—— 每个函数调用有一份那 thread_local 变量是什么?—— 每个线程有一份!懂了吧?就是这么简单!下次当你看到多线程程序莫名其妙出问题,先想想是不是该用thread_local!一个关键字,省下一堆 debug 的时间,何乐而不为?如果你觉得这篇文章对你有帮助,别忘了哦~ ,有任何问题也欢迎在评论区留言讨论哦!
2025-05-25 13:14:48
771
原创 「硬核科普」C++11锁机制三兄弟大比拼:mutex、lock_guard与unique_lock
mutex:最基础的锁,需要手动锁定和解锁,用不好容易出问题,就像自己管理卫生间门锁。lock_guard:简单安全的自动锁,构造时锁定,析构时解锁,但不能中途操作锁状态,就像请了个死板但可靠的保安。:功能最全面的锁包装器,灵活性最高,但有轻微的性能开销,就像一个万能的管家。最佳实践简单场景,优先使用lock_guard需要条件变量或灵活锁定/解锁时,使用对性能极度敏感的场景,考虑直接使用mutex,但要非常小心希望这篇文章能让你对C++11的同步工具有个清晰的认识。
2025-05-25 13:05:26
1035
原创 C++内存管理的隐形杀手:为什么资深开发者从不在STL容器中存放裸指针!
C++内存管理的隐形杀手:为什么资深开发者从不在STL容器中存放裸指针!
2025-04-24 12:42:21
718
原创 C++中的map vs unordered_map:选错容器让你的程序慢10倍!
C++中的map vs unordered_map:选错容器让你的程序慢10倍!
2025-04-24 12:37:19
914
原创 深入理解 C 语言的 undefined behavior:一行代码引发的惨案 !
深入理解 C 语言的 undefined behavior:一行代码引发的惨案 !
2025-03-29 11:35:26
569
原创 性能翻倍!揭秘编译器如何偷偷加速你的C++代码 - RVO/NRVO详解
性能翻倍!揭秘编译器如何偷偷加速你的C++代码 - RVO/NRVO详解
2025-03-28 11:18:48
1009
1
原创 90% 的人答错!TCP 和 UDP 可以使用同一个端口吗?(字节面试真题)
90% 的人答错!TCP 和 UDP 可以使用同一个端口吗?(字节面试真题)
2025-03-28 10:50:22
966
原创 「硬核实战」回调函数到底是个啥?一文带你从原理到实战彻底掌握C/C++回调函数
「硬核实战」回调函数到底是个啥?一文带你从原理到实战彻底掌握C/C++回调函数
2025-03-28 10:09:38
903
原创 Linux C/C++ 编程环境搭建全攻略:如何让你的开发环境好用到飞起?
Linux C/C++ 编程环境搭建全攻略:如何让你的开发环境好用到飞起?
2025-03-10 12:04:56
2024
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人