![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络I-O模型
文章平均质量分 91
Shreck66
这个作者很懒,什么都没留下…
展开
-
muduo网络库中buffer的设计
1.为什么非阻塞网络编程中应用层buffer是必须的非阻塞I/O(在这里可以理解为非阻塞I/O加T/O复用)的核心思想就是避免将当前线程阻塞在I/O系统调用上,这样可以使我们的I/O线程只阻塞在I/O复用函数上(epoll_wait或poll,select)使其能够服务更多的连接socket那么如何才能做到这一点呢?这里我们就需要实现应用层的输入输出buffer(1)什么情况下用到output b原创 2015-11-03 16:41:45 · 3774 阅读 · 2 评论 -
EPOLL在ET模式下会被触发多次么?
前几天和同学一起讨论EPOLLONESHOT的作用,它的功能是这样的:对于注册了EPOLLONESHOT事件的文件描述符,操作系统最多触发其上注册的包括可读,可写,错误中的一个,且只触发一次刚一看感觉EPOLLONESHOT咋么就是ET模式相对于LT模式的区别,反复理解之后发现原来ET和ONESHOT的区别是ET只是可读可写或错误类的某一种事件类型只能被触发一次,而不同种类的事件类型却可以触发不止原创 2015-09-22 12:27:43 · 3290 阅读 · 7 评论 -
muduo的reactor模式基本实现
这几天一直在看muduo的Eventloop(事件循环)这一块的源代码,感觉里面有好多东西例如:智能指针的使用,将eventfd,timerfd等linux新性能运用进去,C++一些容器的合理使用,还有如何能在多线程情况下减少锁的使用等都是我们应该学习的东西。关于muduo实现的reactor模式,有三个关键的类.事件分发器类Channel.封装了I/O复用的Poller.定时器接口类Timer原创 2015-11-14 23:11:10 · 2899 阅读 · 0 评论 -
走进nginx事件驱动模型
最近在看阿里陶辉前辈写的”深入理解nginx”中的nginx的事件模块。之所以想看这块内容,是因为nginx可以处理庞大的并发连接,想看看支持其背后的事件驱动是如何构建的这篇博文我也不想贴代码什么的整一堆东西来讲述nginx事件驱动,一来我未必理解的那么透彻,而来这样反而更不易阅读者快速的掌握知识,所以我会简单的将几个我认为可能会对我之后的服务器程序开发中有所帮助的几个知识点简单论述nginx的ep原创 2016-01-13 11:58:52 · 5242 阅读 · 1 评论 -
muduo网络库脉络分析(1)
去年看muduo网络库时没有总结博文,导致前段时间用muduo时发现好多东西都模模糊糊,于是就花时间又一次翻阅了muduo源码,并用此篇博文记录下其网络库整体脉络,以便是后来者入手起来更方便,同时也可用作自己以后复习的资料1.如何入手muduo库其实在这之前也没有尝试去分析一个网络库的总脉络,更没有去尝试把它以博文的形式总结下来。那么我们该如何尝试去分析这样一个网络库的整体脉络呢?其实我有想过将mu原创 2016-03-21 13:54:42 · 2604 阅读 · 6 评论 -
muduo网络库脉络分析(2)
因为此篇博文是上篇博文的延续,所以读者在阅读此时最好能先去看一下muduo网络库脉络分析(1)Channel类其实在上篇博文讲完Acceptor类之后,我因该按照流程顺序接着讲TcpConnection类的,但是因为TcpConnection中包含一个很重要的类Channel类,之前讲时也都有设计Channel类,但是我只是笼统的描述那是对事件的一个抽象,所以这里将Channel类,既可以帮助大家理原创 2016-03-21 17:44:35 · 1639 阅读 · 2 评论