本文利用前文所述的半同步/半反应堆线程线模板,实现高并发的HTTP服务器,支持简单的HTTP协议。
首先贴出本文服务器的软件架构:
先对上图作几点说明:
1、利用空间换时间的办法,在程序初始化时创建FD_MAX个HTTP请求对象,并把FD作为对象的索引下标,加快后续的访问;
2、关于工作线程的粒度问题:本设计中,主线程除了监听socket以外,还进行了具体的读写操作,只把处理HTTP请求的工作交给工作线程。按照通常的做法是:主线程只负责事件的监听,而把具体的操作交由工作线程来处理,包括读请求和写回复。
有空再贴上代码进行说明……