摘要陈硕老师的“Linux多线程服务端编程 - 使用muduo C ++网络库”12种并发服务器模型,特整理于此,备学习使用。
方案0:接受+读/写一次服务一个客户
这个不是并发服务器。
方案1:接受+ fork()进程每个连接
这个是传统的UNIX并发网络编程方案,也叫过程每次connextion。这种方案适合并发连接数不大的情况。“计算响应的工作量大于叉()的开销”每一个连接开启一个进程来处理。这种方案适合长连接,不适合短连接。
方案2:接受+线程每个连接线程
同样适合长连接,每一个连接开启一个线程,相对于方案1来说,开销是小了一点,但是对于多个并发连接,也是不合适的,线程数目太多,线程上下文切换也是需要很多时间的!
方案3:perfork()在UNP中存在
方案4:预先在UNP中存在
方案3和方案4是分别对