- 博客(12)
- 收藏
- 关注
原创 日志系统(一):什么是日志?
日志是系统或应用程序运行过程中记录的事件、状态和错误信息的"日记",在项目开发中具有重要作用。日志可分为问题排查、告警、调试、功能等类型,实现方式包括输出、滚动策略、异步写入和格式化等功能。日志级别从高到低包括FATAL(致命错误)、ERROR(错误)、WARN(警告)、INFO(信息)、DEBUG(调试)和TRACE(跟踪)。日志记录应根据功能重要性而非异常情况确定级别,对于致命错误需立即采取应对措施而非仅记录日志。有效的日志管理对系统调试、监控、审计和性能优化至关重要。
2025-07-03 19:13:44
1513
原创 C++线程池(五):总结
摘要:本文系统介绍了四种主流线程池的实现原理与适用场景。固定线程池通过固定线程数和阻塞队列实现稳定资源控制,适合长期均衡任务;缓存线程池采用动态扩缩容机制应对突发短任务;工作窃取线程池通过分布式队列和多核负载均衡提升并行效率;定时线程池利用优先队列实现精准调度。文章还解析了线程池的核心技术(线程复用、任务队列、资源控制)及其优势(降低开销、提高响应、简化管理),并对比了不同类型线程池的特点。线程池作为并发编程核心组件,需根据任务特性选择合适类型并优化配置参数。
2025-06-10 12:00:00
780
原创 C++线程池(四):ScheduleThreadPool
本文介绍了一个基于优先队列的定时线程池实现方案。该方案采用SyncQueue作为任务队列,使用priority_queue存储任务,并通过互斥锁和条件变量确保线程安全,提供Add/Take/Stop等基本操作。在此基础上构建的ScheduledThreadPool定时线程池支持:1)启动指定数量工作线程执行任务;2)提交定时任务(execute/submit两种方式);3)优雅停止线程组。适用场景包括定时任务调度、心跳检测、数据处理等需要按固定间隔/时间点执行任务的场景。该实现简化了任务调度管理,提升了系统
2025-06-09 16:45:45
400
原创 C++线程池(三):WorkStealingPool
WorkStealingPool采用工作窃取算法提升多线程效率,当线程本地任务队列为空时主动窃取其他线程任务。其核心实现包括:1)基于vector+deque的SyncQueue,支持线程安全的任务存取和状态检查;2)动态任务分配机制,通过threadIndex轮询分配任务,优先处理本地队列;3)通用任务提交接口,支持异步返回future结果。该线程池特别适用于CPU密集型、可分解的并行任务(如数据处理、图像处理等),能有效减少线程竞争、提高吞吐量,但在I/O密集型场景中表现不佳。
2025-06-08 11:18:42
1013
原创 C++线程池(二):CachedThreadPool
用C++11的线程相关的特性,比如利用线程、条件变量、互斥量来实现一个轻巧的线程池,从而避免频繁地创建线程带来的开销。保证线程池中的任务不能挂死,否则会耗尽线程池中的资源,造成假死现象;避免长时间执行一个任务,会导致后面的任务大量堆积而得不到及时处理,对于耗时较长的任务可以考虑用单独的线程去处理。
2025-06-06 11:25:43
1061
原创 Linux:系统的认识、基本指令、操作
命令模式插入模式(编辑模式)末行模式库是一组预先编译好的方法的集合;在Linux系统上,库文件分为静态库(libmain.a)和共享库(linmain.so);在Windows系统上,库文件分为静态库和动态链接库。Linux系统存储的库的位置一般在:/lib和/usr/lib;库的头文件一般会被存储在/usr/include下或其子目录下。例如,我们在写代码时,引用的头文件就是库的头文件,但是在这个头文件中只是标准输入输出方法的声明,没有实现;方法的实现在C的标准库里;我们一般使用的都是静态库。
2025-01-07 14:28:22
634
原创 C++面向对象编程(1)
在C++面向对象编程过程中,是高度按照现实世界的道理与哲学编程,对构造函数,析构函数,对象的生存周期,const修饰的常方法和普通方法该如何使用,这是我们要特别注意的问题。
2025-01-04 18:28:04
1070
原创 Linux常用命令以及目录结构
sudo su切换管理员exit退出cd切换路径ls显示当前位置邮那些文件pwd显示当前位置的绝对路径touch创建普通文件mkdir创建目录文件(文件夹)
2024-09-23 20:01:02
311
原创 结构体的定义和使用
枚举(enum),顾名思义,就是一一列举出来所有可能出现的情况,并且给它们取一个名字。enum是一个新的关键字,在C语言中的唯一用途就是定义枚举类型。最后的;不能少。//列出一个星期有几天。
2024-04-19 16:30:03
1951
1
原创 C语言指针
把一个数据地位字节处的数据存放在高地址处,高位字节处的数据存放在低地址处。把一个数据地位字节处的数据存放在低地址处,高位字节处的数据存放在高地址处。指针-指针的操作得到的是指针和指针之间元素的个数, 前提是两个指针必须指向同一块空间。
2024-04-09 18:42:19
392
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅