TinyWebServer阅读笔记(二)

有错误麻烦大佬指出!!!拜托了!!!!

异步日志实现:

主要包含两个部分: 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掉互斥锁和条件变量。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值