WebServer 多线程并发处理http请求的web服务器,具体实现功能如下: 一. 使用Epoll边缘触发,对文件描述符(socket文件描述符和accept文件描述符)进行监听 二. 构造多线池并发处理http请求响应 三. 对http请求方式get、post进行解析 四. 使用优先队列来实现http的长连接机制 其中用到的一些基本概念及总结 1.使用内存映射技术mmap,将请求的资源进行内存共享,直接写入socket文件描述符,不需要先将数据写入用户进程地址中。 2.互斥量和条件变量对任务队列加锁,来保证任务队列在空或满的情况下阻塞,并能够多线程安全。 3.使用一个线程来维护socket长连接信息队列,其中利用双检锁来对队列进行修改,避免不必要的加锁。 4.线程池里线程取任务的方式为,只要谁闲着,谁就回去竞争获取任务队列里的任务。