![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
muduo
lovebasamessi
我不管,我要学习!!!
展开
-
muduo库是如何实现跨线程函数调用的
muduo库的跨线程函数主要是通过EventLoop类的成员函数runInLoop函数实现的,还是以具体的例子来一步一步的说明吧! #include <muduo/net/EventLoop.h> #include <muduo/net/EventLoopThread.h> #include <stdio.h> using namespace...原创 2020-03-05 01:48:09 · 914 阅读 · 3 评论 -
muduo库Channel类剖析:从回调函数注册到函数执行流程全剖析
Channel通道类,它是muduo库负责注册读写事件的类,并保存了fd读写事件发生时调用的回调函数,那么它到底是如何实现对应事件发生时系统执行指定的回调函数的呢?下面我们来研究一下: Channel的数据成员: 我们看到Channel类的数据成员中有一个描述符成员fd_,每个描述符会与一个Channel绑定。同时我们看到其由4个回调函数指针成员。 事件关...原创 2020-03-05 00:11:33 · 679 阅读 · 0 评论 -
基于muduo库编写的服务器运行时文件描述符的创建顺序分析
这里仅以单IO线程为例,会了单IO线程的,其实多IO线程的也很好分析。 首先来看TcpServer类的数据成员: TcpServer类的构造函数: 研究TcpServer的数据成员与构造函数可以清晰的看到各个文件描述符的创建顺序。这有助于我们对整个服务器运行的流程有着一个较为清晰的了解。首先我们以TcpServer工作在单线程为例。众所周知,0、1、2分别对应s...原创 2020-03-04 23:57:34 · 206 阅读 · 0 评论 -
以sudoku服务器分析基于muduo的multiReactor+业务线程池模型运行流程
前言 在以sudoku服务器分析muduo的的multiReactor+业务线程池模型运行流程之前,我们首先要知道什么是multiReactor+业务线程池模型(这种模型又称为one loop per thread +线程池模型),请看下面这幅图。 所谓one loop per thread,就是每个loop循环对应一个IO线程,每个IO线程中有一个EventLoop对象,负责处理IO事件...原创 2020-03-04 23:22:39 · 703 阅读 · 1 评论 -
以基于Reactor模式的高并发EchoServer为例剖析muduo库框架
前言 在讲解基于muduo库的高并发echo服务器之前,我们先来回顾一下我们一般编写基于Reactor模式的高并发服务器的基本流程。 muduo的EchoServer其实也是基于上述流程,只不过进行了一定程度地封装,本质上仍是Reactor模式。muduo的example中的echo服务器代码展示的是只有一个reactor的服务器,muduo其实支持one loop per t...原创 2020-03-02 15:05:43 · 747 阅读 · 1 评论