
网络
upperflyer
做一朵太阳花
展开
-
彻底学会使用epoll(一)——ET模式实现分析
注:之前写过两篇关于epoll实现的文章,但是感觉懂得了实现原理并不一定会使用,所以又决定写这一系列文章,希望能够对epoll有比较清楚的认识。是请大家转载务必注明出处,算是对我劳动成果的一点点尊重吧。另外,文中如果有不全面或者不正确的地方还请大家指出。也可以私信或者发邮件:lvyilong316@163.com1. ET模...转载 2019-03-12 11:57:44 · 163 阅读 · 0 评论 -
彻底学会使用epoll(二)——ET和LT的触发方式
分析了ET和LT的实现方式,那么分析他们的触发方式就容易多了。我们通过实现分析知道LT模式下epoll_wait被唤醒可以通过两种方式(图中红线和蓝线),而ET模式只能通过一种方式(图中红线)。所以ET模式下能被唤醒的情况,LT模式下一定也能被唤醒。我们先来讨论特殊情况(ET模式),再来讨论一般情况(LT模式)。2.1 ET...转载 2019-03-12 11:59:50 · 165 阅读 · 0 评论 -
彻底学会使用epoll(三)——ET的读操作实例分析
首先看程序一,这个程序想要实现的功能是当用户从控制台有任何输入操作时,输出”hello world!”。l 程序一 点击(此处)折叠或打开#include <unistd.h>#include <iostream>#inclu...转载 2019-03-12 12:01:01 · 166 阅读 · 0 评论 -
彻底学会使用epoll(四)——ET的写操作实例分析
首先,看程序四的例子。l 程序四点击(此处)折叠或打开#include <unistd.h>#include <iostream>#include <sys/epoll.h>using namespace std;int ...转载 2019-03-12 12:02:01 · 136 阅读 · 0 评论 -
彻底学会使用epoll(五)—— ET模式下的注意事项
彻底学会epoll(五)—— ET模式下的注意事项——lvyilong3165.1 ET模式下的读写 经过前面几节分析,我们可以知道,当epoll工作在ET模式下时,对于读操作,如果read一次没有读尽buffer中的数据,那么下次将得不到读就绪的通知,造成bu...转载 2019-03-12 12:03:27 · 302 阅读 · 0 评论 -
彻底学会使用epoll(六)——关于ET的若干问题总结
彻底学会使用epoll(六)——关于ET的若干问题总结——lvyilong3166.1 ET模式为什么要设置在非阻塞模式下工作 因为ET模式下的读写需要一直读或写直到出错(对于读,当读到的实际字节数小于请求字节数时就可以停止),而如果你的文件描述符如果不是非阻塞的,那这...转载 2019-03-12 12:04:36 · 262 阅读 · 0 评论 -
poll&&epoll实现分析(一)——poll实现
0.等待队列在Linux内核中等待队列有很多用途,可用于中断处理、进程同步及定时。我们在这里只说,进程经常必须等待某些事件的发生。等待队列实现了在事件上的条件等待: 希望等待特定事件的进程把自己放进合适的等待队列,并放弃控制全。因此,等待队列表示一组睡眠的进程,当某一条件为真时,由内核唤醒它们。等待队列由循环链表实现,...转载 2019-03-12 13:31:12 · 285 阅读 · 0 评论 -
poll&&epoll实现分析(二)——epoll实现
Epoll实现分析——作者:lvyilong316通过上一章分析,poll运行效率的两个瓶颈已经找出,现在的问题是怎么改进。首先,如果要监听1000个fd,每次poll都要把1000个fd 拷入内核,太不科学了,内核干嘛不自己保存已经拷入的fd呢?答对了,epoll就是自己保存拷入的fd,它的API就已经说明了这一点——不...转载 2019-03-12 13:34:01 · 222 阅读 · 0 评论 -
仿函数与回调函数
&nbsp;&nbsp;&nbsp; 在之前聊了小括号重载和回调函数,现在来聊聊仿函数,以及它和回调函数的关系。&nbsp; &nbsp; 仿函数是对象使用行为看上去像个函数。&nbsp; &nbsp; 函数的使用是这个样的&nbsp; &nbsp; Function(param1,param2,...)&nbsp; &nbsp;转载 2019-03-18 15:17:02 · 579 阅读 · 0 评论