码迷,mamicode.com
首页 > 其他好文 > 详细

学习之前,先讲解下各种服务器模型,还有muduo的服务器模型

时间:2015-11-04 22:45:14      阅读:276      评论:0      收藏:0      [点我收藏+]

标签:

方案0:accept+read/write,阻塞,一次服务一个客户。

方案1:accept+fork,阻塞,采用多进程,长连接,并发性低,开销高,process-per-connection

方案2:accept+thread,阻塞,采用多线程,长连接,并发性中,开销中,多连接互通,thread-per-connection.

方案3:prefork,方案2的变形.

方案4:prethread,方案3的变形.

// 开始采用I/O复用

方案5:poll(reactor),无阻塞,并发性高,开销低,单线程 reactor.

方案6:reactor+thread-per-task,无阻塞,并发性中,多核,开销中,对请求开启一个线程来处理,thread-per-request。

方案7:reactor+workerthread,无阻塞,并发性中,开销中,有一个专门处理请求的工作线程。

方案8:reactor+threadpoll,无阻塞,并发性高,开销低,方案7的改版。

方案9:multiple reactors,无阻塞,并发性高,开销低,muduo网络库采用,one loop per thread。

方案10:multiple reactors+threadpoll。

 

方案9是muduo内置的多线程方案,有一个 main reactor 负责 accpet ,然后将接受到的连接,分发到其他 sub reactor ,采用轮换的作用,来分担,充分利用多核。one loop per thread.一般线程的数量按核数计算,固定。

 

学习之前,先讲解下各种服务器模型,还有muduo的服务器模型

标签:

原文地址:http://www.cnblogs.com/cycxtz/p/4937352.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!