基于最小堆计时器实现的多线程IO复用高性能web服务器
- 使用线程池避免了动态生成线程造成的性能下降。
- 以epoll实现的IO多路复用,可选Proactor/Reactor模型的并发事务处理。
- 有限状态机模型解析http报文,编写cgi接口支持解析GET和POST方式的报文。
- 使用mysql数据库储存用户密码数据,实现了注册登陆功能,以便获得服务器端图片视频等数据。
- 可选同步/异步日志记录服务器的运行状态。
- 计时器以最小堆的堆顶最小超时时间设置心搏函数计时,较之定长时间心搏计时器性能显著提升,支持计时器删除和修改
- 理论出自《Linux高性能服务器编程》-游双
- 初版代码来源TinyWebServer-qinguoyi