有错误麻烦大佬指出!!!拜托了!!!!
异步日志实现:
主要包含两个部分: 1. 日志模块 2.阻塞队列模块,其中加入阻塞队列模块主要是解决异步写入日志做准备.
阻塞队列模块:
实现了一个模板类循环队列
block_queue(int max_size = 1000)
//根据max_size的大小对循环队列进行构造,这个里面主要有以下几个属性:
1. m_max_size: 循环队列能容纳的最大元素个数
2. m_array: 具体的循环队列,是个指针,根据max_size用new来创建new T[max_size]
3. m_size: 用来记录当前队列中存在的元素个数
4. m_front: 队列的头
5. m_back: 队列的尾
6. 互斥锁: 用动态方式进行初始化 m_mutex
7. 条件变量: 用动态方式进行初始化 m_cond
clear(): 清空循环队列,每次清空前对循环队列加锁,防止其他线程对其大小进行改变。
~block_queue(): 析构函数,首先利用锁对循环队列进行delete,之后delete掉互斥锁和条件变量。