单线程服务器和多线程服务器的常用编程模型

单线程服务器和多线程服务器的常用编程模型

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用来做计算,具体可以是任务队列和生产者消费者队列。

你可能感兴趣的:(笔试面试专题,高性能服务器程序研究与开发)