
TinyWebServer项目
文章平均质量分 90
TinyWebServer项目
画个逗号给明天"
西电机械工程学硕研一在读,记录学习过程中的问题
展开
-
TinyWebServer项目笔记——09 日志系统(下)
日志文件局部变量的懒汉模式获取实例生成日志文件,并判断同步和异步写入方式同步判断是否分文件直接格式化输出内容,将信息写入日志文件异步判断是否分文件格式化输出内容,将内容写入阻塞队列,创建一个写线程,从阻塞队列取出内容写入日志文件通过局部变量的懒汉单例模式创建日志实例,对其进行初始化生成日志文件后,格式化输出内容,并根据不同的写入方式,完成对应逻辑,写入日志文件。日志类包括但不限于如下方法,公有的实例获取方法初始化日志文件方法异步日志写入方法,内部调用私有异步方法内容格式化方法。原创 2025-03-17 22:18:51 · 892 阅读 · 0 评论 -
TinyWebServer项目笔记——09 日志系统(上)
本项目使用单例模式创建日志系统,对服务器运行状态、错误信息和访问数据进行记录,该系统可以实现按天分类,超行分类功能,可以根据实际情况分别使用同步和异步写入两种方式。其中异步写入方式,将生产者-消费者模型封装为阻塞队列,创建一个写线程,工作线程将要写的内容push进队列,写线程从队列中取出内容,写入日志文件。日志系统大致可以分成两部分,其一是单例模式与阻塞队列的定义,其二是日志类的定义与使用。原创 2025-03-16 21:12:34 · 571 阅读 · 0 评论 -
TinyWebServer项目笔记 ——11 数据库连接池
池是一组资源的集合,这组资源在服务器启动之初就被完全创建好并初始化。通俗来说,池是资源的容器,本质上是对资源的复用。顾名思义,连接池中的资源为一组数据库连接,由程序动态地对池中的连接进行使用,释放。当系统开始处理客户请求的时候,如果它需要相关的资源,可以直接从池中获取,无需动态分配;当服务器处理完一个客户连接后,可以把相关的资源放回池中,无需执行系统调用释放资源。池可以看做资源的容器,所以多种实现方法,比如数组、链表、队列等。这里,使用单例模式和链表创建数据库连接池,实现对数据库连接资源的复用。原创 2025-03-14 07:00:00 · 1340 阅读 · 0 评论 -
TinyWebServer项目笔记 ——03 http连接处理(上)
在服务器项目中,http请求的处理和响应至关重要,关系到用户界面的跳转和反馈。基础知识方面包括epoll、HTTP报文格式、状态码和有限状态机。代码分析方面,对服务器端处理http请求的全部流程进行简要介绍,然后结合代码对http类及请求接收进行详细分析。原创 2025-03-10 15:27:38 · 1136 阅读 · 0 评论 -
TinyWebServer项目笔记——01 线程同步机制封装类
RALL的核心思想是将资源的获取与对象的初始化绑定在一起,资源的释放与对象的析构绑定在一起。由于C++的机制,当一个对象创建的时候,自动调用构造函数,当对象超出作用域的时候会自动调用析构函数。1.生产者-消费者模型:当缓冲区为空时,消费者线程等待,当缓冲区有数据时,生产者线程通知消费者线程。互斥量的核心思想是:当一个线程持有互斥量时,其他线程必须等待,直到该线程释放互斥量后才能继续访问共享资源。3.阻塞机制:如果互斥量被其他线程持有,尝试加锁的线程会被阻塞,直到互斥量被释放。用于控制对多个资源的访问。原创 2025-03-08 17:28:51 · 745 阅读 · 0 评论