- 博客(7)
- 收藏
- 关注
原创 C++之线程池(模板+std::function+生产消费者模式实现)
1.线程复用: 创建/销毁线程的开销(系统调用,内核态/用户态切换,栈空间分配)远大于执行简单任务,线程池提前创建固定数量的线程并复用,可避免频繁创建销毁的开销。就趁着这次学习的机会,从头复盘下线程池的基本知识点。线程池(ThreadPool):基本的线程池主要由工作线程池,任务队列,保护任务队列的互斥锁,唤醒/阻塞工作线程和提交函数的条件变量,线程池停止标志位组成。例如:后台服务器中,线程池同时处理“用户登录”,“订单生产”,“日志写入“等功能,需要执行不同的业务逻辑,传入的参数也不相同。
2025-12-30 12:03:51
199
原创 C++多线程之原子操作 std::atomic
std::atomic 是 C++11 引入的模板类,用于支持多线程环境下的原子操作。原子操作是不可分割的操作,即在执行过程中不会被其他线程打断,从而避免数据竞争和未定义行为。
2025-12-16 10:14:34
526
原创 保姆级教程:C++之配置jsoncpp开源库
本文主要展示了标准C++环境如何配置jsoncpp这个高效的json开源库,一步步带读者从下载到项目配置
2025-12-09 00:02:01
369
原创 C++设计模式之生产消费者模式
生产消费者模式是一种多线程协作的设计模式,核心思想是通过共享缓冲区(如队列)解耦生产者与消费者。生产者负责生成数据并放入缓冲区,消费者从缓冲区取出数据并处理。两者通过同步机制(如互斥锁、条件变量)协调工作,避免资源竞争或数据不一致。
2025-12-08 10:11:28
401
原创 C++设计模式之单例模式
定义单例模式的核心概念:确保一个类只有一个实例,并提供全局访问点。适用场景:需要全局唯一对象的场景,如配置管理、线程池、日志系统等。
2025-12-05 11:36:31
585
原创 C++设计模式笔记(适用于入门设计模式的新手)
这时,如果我们分别在不同的模块下创建了很多A类对象,一但A类的构造函数发生改变(比如从无参构造变成有参构造),那么我们这些使用new的地方都需要更改,这就使代码变得难以维护和扩展。但这样在每创建一个对象时,都需要写一个new语句,而当后期如果怪物类的构造函数发生了更改,我们就需要具体到每个new语句去更改,大大降低了代码的可维护性。总结一下简单工厂,个人理解就是创建一个工厂类,将实例化对象的工作都放到这个类里统一管理和调用,用户并不需要知道实例化的具体实现,只用调用工厂类提供的成员函数接口去创建对象即可。
2024-11-12 09:34:12
399
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅