位置: 编程技术 - 正文

Linux IO的水平触发和边缘触发的区别(linux触控)

编辑:rootadmin

推荐整理分享Linux IO的水平触发和边缘触发的区别(linux触控),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux触控,linux touchpad,linux触摸屏事件,linux 触摸屏,linux触摸屏校准指令,linux 触屏校准,linux 触摸屏,linux触控,内容如对您有帮助,希望把文章链接给更多的朋友!

Linux IO的水平触发和边缘触发的区别

在linux的IO多路复用中有水平触发,边缘触发两种模式,这两种模式的区别如下:

水平触发:如果文件描述符已经就绪可以非阻塞的执行IO操作了,此时会触发通知.允许在任意时刻重复检测IO的状态.select,poll就属于水平触发.

边缘触发:如果文件描述符自上次状态改变后有新的IO活动到来,此时会触发通知.在收到一个IO事件通知后要尽可能多的执行IO操作,因为如果在一次通知中没有执行完IO那么就需要等到下一次新的IO活动到来才能获取到就绪的描述符.信号驱动式IO就属于边缘触发.

Linux IO的水平触发和边缘触发的区别(linux触控)

写过单片机的人可以从另一方理解水平触发和边缘触发的区别:

水平触发:就是只有高电平(1)或低电平(0)时才触发通知,只要在这两种状态就能得到通知.上面提到的只要有数据可读(描述符就绪)那么水平触发的epoll就立即返回.

边缘触发:只有电平发生变化(高电平到低电平,或者低电平到高电平)的时候才触发通知.上面提到即使有数据可读,但是io状态没有变化epoll也不会立即返回.

epoll既可以采用水平触发,也可以采用边缘触发.

大家可能还不能完全了解这两种模式的区别,我们可以举例说明:一个管道收到了1kb的数据,epoll会立即返回,此时读了字节数据,然后再次调用epoll.这时如果是水平触发的,epoll会立即返回,因为有数据准备好了.如果是边缘触发的不会立即返回,因为此时虽然有数据可读但是已经触发了一次通知,在这次通知到现在还没有新的数据到来,直到有新的数据到来epoll才会返回,此时老的数据和新的数据都可以读取到(当然是需要这次你尽可能的多读取).所以当我们写epoll网络模型时,如果我们用水平触发不用担心数据有没有读完因为下次epoll返回时,没有读完的socket依然会被返回,但是要注意这种模式下的写事件,因为是水平触发,每次socket可写时epoll都会返回,当我们写的数据包过大时,一次写不完,要多次才能写完或者每次socket写都写一个很小的数据包时,每次写都会被epoll检测到,因此长期关注socket写事件会无故cpu消耗过大甚至导致cpu跑满,所以在水平触发模式下我们一般不关注socket可写事件而是通过调用socket write或者send api函数来写socket,说到这我们可以看到这种模式在效率上是没有边缘触发高的,因为每个socket读或者写可能被返回两次甚至多次,所以有时候我们也会用到边缘触发但是这种模式下在读数据的时候一定要注意,因为如果一次可写事件我们没有把数据读完,如果没有读完,在socket没有新的数据可读时epoll就不回返回了,只有在新的数据到来时,我们才能读取到上次没有读完的数据。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

bash判断文件或文件夹是否存在的shell代码 核心代码#shell判断文件夹是否存在#如果文件夹不存在,创建文件夹if[!-d"/myfolder"];thenmkdir/myfolderfi#shell判断文件,目录是否存在或者具有权限folder="/var/www/"

详解Linux下的sudo及其配置文件/etc/sudoers的详细配置 详解Linux下的sudo及其配置文件/etc/sudoers的详细配置1.sudo介绍sudo是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行

Linux 下sudo网络权限详解 Linux下sudo网络权限详解对于设置了网络代理的服务器,在当前用户下执行网络访问没有问题,但通过sudo执行命令时,就会出现无网络连接的错误。背景

标签: linux触控

本文链接地址:https://www.jiuchutong.com/biancheng/376725.html 转载请保留说明!

上一篇:ubuntu sublime中文输入问题解决办法(ubuntu20.04中文)

下一篇:bash判断文件或文件夹是否存在的shell代码(shell判断文件)

  • 个人所得税本期收入是扣完保险吗
  • 企业可以找审计人员吗
  • 销售商品收到转账支票计入什么科目
  • 个体户查账征收怎么交税?
  • 网上报税超过了时间还能报吗
  • 自产商品用于在哪个科目
  • 土地出让金返还政策文件
  • 跨境电商有进口吗
  • 建筑业异地预缴税款怎么抵扣
  • 国库集中支付行政运行
  • 固定资产处理怎么记账
  • 参加会议需要用身份证吗
  • 计提工会经费是按应付职工薪酬的借方还是贷方
  • 年终奖需要扣除个人所得税吗
  • 购买理财产品是不是非法集资
  • 企业拆迁补偿款需要开发票吗
  • 国家要收回房屋土地怎么补偿
  • 总包分包差额征税是什么意思
  • 全年一次性奖金计税方式2023
  • 开票金额与实际金额差5元
  • 应收补贴款贷方余额
  • 销售二手设备税率
  • 递延所得税资产和负债怎么理解
  • 应收账款结转下年要画红线吗
  • 滴滴开的发票能否抵扣进项税
  • 收入低于10万免征附加税
  • 同一控制下企业合并权益抵消
  • 自建厂房领用材料进项税的处理
  • 少计收入被处罚账务处理怎么做?
  • 生产的废材料处理如何记账是否缴税?
  • 结转成本是否要等货物卖出后
  • 什么是额定功率和峰值功率
  • 新版Win10中,如何仅修改部分文本大小
  • mysqld-nt.exe - mysqld-nt是什么进程 有什么用
  • pcfile.dll是什么意思
  • 提取的盈余公积是所有者权益吗
  • 不动产固定资产标识牌
  • 企业发放年终奖政府有哪些规定?
  • 动态模型图如何制作
  • php产品
  • 写一个php访问数据库并读取数据的脚本
  • 企业账户有什么好处
  • 累计折旧大白话
  • 所得税需要结转么
  • 销售车位应怎么交税
  • mysql 锁详解
  • 转租行为的税务处理方法
  • mysql命令行怎么用
  • 收到发票并支付货款怎么做账
  • 银行开出的发票可以进行税抵扣吗?
  • 收到返款计入什么科目
  • 生产成本可以结转到主营业务成本吗
  • 企业所得税汇算清缴时间
  • 餐饮娱乐服务员
  • 商标权的入账价值有哪些
  • 公司账户资金转个人账户
  • 宾馆收入怎么做账
  • 购买展示样品是指什么
  • 已开票未收款怎么报税
  • 应交税费借方余额填列资产负债表
  • 鉴证咨询服务费可以抵扣吗
  • 售后回租融资是利好还是利空
  • 外账会计做什么
  • 残保金计算人数1.02怎么计算
  • wdcp的/www目录大小调整或增加分区/硬盘的方法
  • mac m1读取ntfs
  • 简介linux系统中的10个常用命令及功能
  • 电脑及网络维护
  • win7能玩的老游戏
  • handle thread
  • opengl详解
  • qq聊天背景闪烁
  • python闭包的条件
  • jQuery Ajax传值到Servlet出现乱码问题的解决方法
  • 如何搭建python项目架构
  • 消费税抵扣范围包括哪些
  • 为什么电子发票没有监制章
  • 所有的酒店真的有摄像头吗
  • 无锡国税电子发票怎么开
  • 购旧设备增值税能不能抵扣
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设