epoll学习2

    epoll_event ev;
	/*注册事件,放入ev中*/
	ev.data.fd = server.get_sock(); 
	/*消息进来,边缘触发*/
	ev.events = EPOLLIN | EPOLLET;
	epoll_ctl(epfd, EPOLL_CTL_ADD, server.get_sock(), &ev);

水平触发LT

    ev.events = EPOLLIN;

默认即为,水平触发

边缘触发ET

ev.events = EPOLLIN | EPOLLET;

区别:

  • 边缘触发 是指每当状态变化时发生一个io事件;
  • 条件触发 是只要满足条件就发生一个io事件;

详细说明:

    当来了100字节的消息,两种设置方法都会触发一个IO事件。

    如果只读取了50字节,对于条件触发来说,还是满足可读条件,会继续触发事件。

    对于边缘触发来说,已经不会发生状态改变,所以不会再继续触发消息。

     状态变化,比如从不可读变为可读

     满足条件,有可读的数据

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值