单线程服务器和多线程服务器的常用编程模型
1. 单线程服务器编程模型
在高性能的网络程序中,使用最广泛的的要数"non-blocking IO+IO multiplexing"这种模型,即Reactor模式。
2. 多线程服务器编程模型
大概有这么几种:
1. 每个请求创建一个线程,使用阻塞式IO操作。
2. 使用线程池,同样使用阻塞式IO操作。
3. 使用non-blocking IO+IO multiplexing。
4. Leader/Follower等高级模式。
总结起来,推荐的C++多线程服务器端编程模式为one(event) loop per thread + thread pool.
event loop(也叫IO loop) 用作IO multiplexing,配合non-blocking IO和定时器。
thread pool用来做计算,具体可以是任务队列和生产者消费者队列。

本文介绍了高性能网络程序中常用的单线程和多线程服务器编程模型。单线程模型主要采用non-blocking IO+IO multiplexing(Reactor模式)。多线程模型包括为每个请求创建线程、使用线程池、non-blocking IO+IO multiplexing及高级模式等。

被折叠的 条评论
为什么被折叠?



