【linux】epoll中的ET和LT


前言

epoll是Linux下的一个多路复用API,当处理大并发的事件时,其性能远强于古老的poll和select。epoll可以工作在两种模式下,LT(水平触发)、ET(边缘触发),接下来将讨论这两种模式的区别。


一、ET和LT介绍

epoll 新增了一个事件宏 EPOLLET,表示边缘触发模式(Edge Trigger,ET),默认的模式是水平触发模式(Level Trigger,LT)。这两种模式的区别在于:
对于水平触发模式,一个事件只要有,就会一直触发。
对于边缘触发模式,只有一个事件从无到有才会触发。

这两个词汇来自电学术语,可以将 fd 就绪认为是高电平,未就绪认为是低电平。那么水平模式的触发条件是状态处于高电平,而边缘模式的触发条件是新来一次电信号将当前状态变为高电平,即:

水平模式触发条件

处于高电平状态

边缘模式触发条件

低电平 => 高电平

图示如下:
在这里插入图片描述

二、代码示例

1.LT模式(默认)

#include <stdio.h>
#include <unistd.h>
#include <sys/epoll.h>

#define MAX_SIZE 1024

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值