多线程TcpServer自己的EventLoop只用来接收新连接(即TcpServer所属线程的EventLoop只监听listen fd),而新连接会用其他EventLoop来执行IO(即每个新TcpConnection对象都会在线程池中分配一个线程来处理该连接上的IO事件).

单线程TcpServer的EventLoop是与TcpConnection共享的,listen fd和accept返回的客户连接fd都是在一个EventLoop中处理的.

TcpServer每次新建一个TcpConnection就会调用getNextLoop()来取得EventLoop,如果是单线程服务,每次返回的都是baseLoop_,即TcpServer自己用的那个loop

EventLoop* EventLoopThreadPool::getNextLoop()
{
baseLoop_->assertInLoopThread();
assert(started_);
EventLoop* loop = baseLoop_; if (!loops_.empty())
{
// round-robin
loop = loops_[next_];
++next_;
if (implicit_cast<size_t>(next_) >= loops_.size())
{
next_ = ;
}
}
return loop;
}

muduo目前的设计是每个TcpServer有自己的EventLoopThreadPool,多个TcpServer之间不共享EventLoopThreadPool.

最新文章

  1. 贪吃蛇的java代码分析(二)
  2. 新接触PHP课程,给自己定制的目标
  3. (转)Android 系统属性SystemProperty分析
  4. Hong Kong Regional Online Preliminary 2016 C. Classrooms
  5. Java数据库——PreparedStatement接口
  6. boxes
  7. 【解决】 新浪sae固定链接404 问题
  8. makefile中的shell语法
  9. lamada 表达式之神奇的groupby
  10. class ha_innobase: public handler
  11. 14.3 InnoDB Multi-Versioning InnoDB 多版本
  12. 【操作系统】linux创建子进程--fork()方法
  13. 【转】stdin, stdout, stderr 以及重定向
  14. Java图形化界面设计——中间容器(Jpanel)
  15. linux下一个Oracle11g RAC建立(五岁以下儿童)
  16. jenkins IOS- ad-hoc 打包
  17. Linux挂载
  18. Nginx ServerName指令
  19. 牛客网数据库SQL实战(此处只有答案,没有表内容)
  20. ODPS SQL &lt;for 数据操作语言DML&gt;

热门文章

  1. eval()将json 字符串转换为数组
  2. (转)hibernate-5.0.7+struts-2.3.24+spring-4.2.4三大框架整合
  3. jQuery 开始动画,停止动画
  4. Java中文乱码处理
  5. faster rcnn一些博客
  6. 【C语言】控制台窗口图形界面编程(七):鼠标事件
  7. MRC转ARC(2)
  8. jquery.guide.js 新手指引
  9. glibc库函数,系统调用API
  10. python爬虫入门02:教你通过 Fiddler 进行手机抓包