这是一个web服务器(仅用于学习Linux socket编程和计算机网络),具有以下特点:
- 使用非阻塞IO实现了reactor网络模型;
- 由事件监听+事件循环组成并发框架;
- 通过线程池管理工作线程以处理客户端请求;
- 使用双向链表实现定时器,管理连接生命周期;
- 使用单例模式(懒汉式)实现一个日志处理模块,维护一个阻塞队列,使用生产者-消费者模式进行数据交互;
- 实现一个简单的在线oj,并尝试将其部署与服务器上(默认使用cpp-httplib部署)
参考: 1、游双Linux高性能服务器编程 2、TinyWebServer