当前位置: 首页 > news >正文

网站建设就找桥三科技江门做公司网站

网站建设就找桥三科技,江门做公司网站,优秀的国风网页设计欣赏,易店无忧官网文章目录 一、五种IO模型1.阻塞IO2.非阻塞IO3.信号驱动IO4.IO多路转接5.异步IO 二、非阻塞IO1.fcntl2.实现SetNoBlock 一、五种IO模型 众所周知#xff0c;IO操作通常较慢#xff0c;其根本原因在于需要访问外部设备。由于外设存在就绪状态的不确定性#xff08;可能我方接… 文章目录 一、五种IO模型1.阻塞IO2.非阻塞IO3.信号驱动IO4.IO多路转接5.异步IO 二、非阻塞IO1.fcntl2.实现SetNoBlock 一、五种IO模型 众所周知IO操作通常较慢其根本原因在于需要访问外部设备。由于外设存在就绪状态的不确定性可能我方接收缓冲区还没有数据也可能对方缓冲区已经满了导致必须等待其准备就绪。简而言之IO过程就是等待与拷贝的结合其中等待时间正是影响IO效率的关键因素。那么如何实现高效IO呢核心在于尽量缩短单位时间内IO操作的等待占比。下面将介绍五种常见的IO优化模型。 我们可以将操作系统的 I/O 操作比作在大河中钓鱼 张三的阻塞式钓鱼阻塞IO全神贯注盯着浮漂没鱼上钩绝不挪动一步。就像程序遇到 I/O 操作时完全阻塞必须等到数据到达才能继续执行。李四的非阻塞式钓鱼非阻塞IO每五分钟检查一次鱼竿没动静就去烧烤。程序通过轮询方式检查 I/O 状态没有数据就处理其他任务但频繁检查反而消耗资源。王五的信号驱动式钓鱼信号驱动IO给鱼竿装上报警器鱼上钩时铃声提醒才来收竿。程序通过信号机制获知数据就绪但仍需主动完成数据拷贝。赵六的多路复用钓鱼多路复用IO架设上百根鱼竿哪根有动静就处理哪根。程序使用单个线程同时监控多个 I/O 通道批量处理就绪事件。田七的自动钓鱼异步IO直接点菜说要吃鱼然后去打游戏雇佣其他人来钓鱼。程序发起 I/O 请求后就完全放手连数据拷贝都由系统自动完成。 接下来就有两个问题需要我们考量 首先阻塞和非阻塞相比非阻塞的效率更高吗 这和我们平常认识的不一样我们这里谈论的效率仅仅是单位时间内钓到的鱼的数量因此哪怕非阻塞能在等待时间里干些其他事情这也不能算作是“效率高”。那么谁的钓鱼效率最高呢毫无疑问必须是赵六多路复用IO同时有百根鱼竿导致赵六一直在各个杆之间奔波钓鱼这样就导致了单位时间内赵六等待的时间比重很低效率自然就高了。 第二个问题王五有没有等待呢 王五相比于李四来说是不需要检测的但王五仍然需要待在河边不管他是在做什么事情有鱼上钩了还是得他亲自来钓可以说王五是参与了钓鱼这个过程的从这个角度来看只要有人参与了IO不管是等待还是拷贝操作那么其就是同步的上述中唯有田七是完全撒手自己完全不参与钓鱼这个过程的那么他就是异步的。 1.阻塞IO 阻塞式IO是最常见的IO 2.非阻塞IO 非阻塞 IO 往往需要程序员循环的方式反复尝试读写文件描述符, 这个过程称为轮询。这对 CPU 来说是较大的浪费, 一般只有特定场景下才使用。 3.信号驱动IO 4.IO多路转接 select这个系统调用和传统的IO系统调用read/write/recv/send/recvfrom/sendto等不同这些传统系统调用都是 等 拷贝 合在一起使用但只能对应一个文件描述符而select却是一次能等待多个文件描述符等待就绪后再调用recvfrom来拷贝这样该接口就不用关心等待了。该技术在高性能服务器领域是必备的后续会介绍。 5.异步IO 二、非阻塞IO 1.fcntl 一个文件描述符默认都是阻塞IO但我们可以使用fcntl函数来对文件描述符属性进行修改它的函数原型如下 传入cmd的值不同后面追加的参数也是不同的fcntl有以下五种功能 • 复制一个现有的描述符cmdF_DUPFD. • 获得/设置文件描述符标记(cmdF_GETFD 或 F_SETFD). • 获得/设置文件状态标记(cmdF_GETFL 或 F_SETFL). • 获得/设置异步 I/O 所有权(cmdF_GETOWN 或 F_SETOWN). • 获得/设置记录锁(cmdF_GETLK,F_SETLK 或 F_SETLKW) 我们此处只是用第三种功能, 获取/设置文件状态标记, 就可以将一个文件描述符设置为非阻塞。 2.实现SetNoBlock 现在我们就能根据fcntl来实现一个SetNoBlock函数来将文件描述符设置为非阻塞了只需要用F_GETFL取得当前文件描述符的属性这是一个位图然后再使用F_SETFL将文件描述符设置O_NONBLOCK后回去。 void SetNoBlock(int fd) {int fl fcntl(fd, F_GETFL);if (fl 0) {perror(fcntl);return;}fcntl(fd, F_SETFL, fl | O_NONBLOCK); }
http://www.dnsts.com.cn/news/276483.html

相关文章:

  • 网站开发都有什么端网站集群建设是
  • 中国网站推广黄页名录常州设计公司
  • 博客做资讯类网站ui网页设计培训学校
  • 网站开发问题及解决网络推广员压力大吗
  • 萍乡海绵城市建设官方网站工程建设程序
  • 做公司网站的理念公司网页免费
  • 网站模板文章资讯怎么自己做歌曲网站
  • 网站系统开发临沂网站
  • 北京城乡建设和住房门户网站龙岩做网站多少钱
  • 服务器购买网站怎么建视频网站免费的
  • 北京建设企业协会网站做网站的前途
  • 深圳建设执业注册中心网站中国十大科技公司排名
  • ppt怎么做 pc下载网站潍坊百度快速排名优化
  • 福州网站建设询q479185700上快高端企业网站 程序
  • 重庆秀山网站建设怎么做网页小精灵
  • 长沙做网站报价学院网站群建设的目标
  • 模板网站开发三门峡专业做网站公司
  • 百度推广获客成本大概多少win7优化大师下载
  • 可以发外链的网站或平台有哪些类似58同城网站建设多少钱
  • 优设网站怎么下载seo搜索引擎优化内容
  • 畜牧网站建设兰山区网站建设推广
  • 男人互做网站amz123
  • 网站建设公司普遍存在劣势welfare wordpress
  • 网页设计师的能力网站建设或网站优化排名
  • 漯河做网站的包头网站 建设
  • 简述网站制作的过程科技资讯 哪个网站好
  • 无锡网站建设网宁波信誉好品牌网站设计地址
  • 更改网站模板内容网站可以增加关键词吗
  • 网站后台程序开发教程给企业做网络推广工作怎么样
  • 潍坊市住房和城乡建设网站呼和浩特公司做网站