多线程服务器 编程模型

多线程服务器 编程模型

多线程的价值在于发挥多核处理器的性能,单核使用状态机是最高效的。
提高平均响应时间

TCP网络编程 本质

处理三个半事件

  1. 连接的建立
  2. 链接的断开
  3. 消息到达
  4. 消息发送完毕,对于低流量的服务不必关心

one loop per thread

好处:

  1. 线程数目基本固定,不会频繁创建销毁
  2. 可以方便地调配负载
  3. IO事件发生的线程固定,无需考虑并发。

并发设计方案

  1. 迭代服务器
  2. accept + fork
  3. thread per connection -> 不适合短链接服务,系统负担大
  4. IO 多路复用(必然要有非阻塞 和 Buffer)
  5. 多线程Reactor-> + 工作线程池

eventloop 作为 非阻塞IO和定时器, thread poll 用作计算模型。

猜你喜欢

转载自www.cnblogs.com/joeylee97/p/8971227.html