C语言 epoll 工作模式之et 边缘触发 edge trigger

友链

占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位占位
// epoll的工作模式
// lt level trigger 水平触发模式
// et edge trigger 边缘触发
// lt模式是默认的
// et是高速工作方式
// 前者会一直通知,后者只会通知一次,如果你缓冲区里面的数据没读完,也不会再通知了
// 后者比较高效,但是需要解决read阻塞的问题

运行效果:
https://www.bilibili.com/video/BV1WL4y1V7A1/

gcc 1.c -o 1 -lpthread

ctrl+f搜索服务端代码和客户端代码获取代码
该方法也可以实现并发服务器

给服务器端开启et
更改服务端代码第755行如下:

epev.events=EPOLLIN|EPOLLET;

然后编译运行
效果如下:
https://www.bilibili.com/video/BV1ZY4y1a7Vd/

可以看到只读取了5个字节

也就是说epoll只通知了一次,他不管你缓冲区里面的数据还有没有读完

只有当下一次再有数据进来的时候,才会再次触发epoll_wait返回文件描述符状态更改,然后我们才会读取上次缓冲区中没有读完的数据

https://www.bilibili.com/video/BV1or4y1J7ie/

你可能感兴趣的:(开发,c语言)