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

沁阳企业自助建站网站建设 客户定位

沁阳企业自助建站,网站建设 客户定位,湘潭专业sem优化,一般网站设计多大宽度一、 select 最low的就是在用户代码中自旋实现所有阻塞socket的监听。但是每次判断socket是否产生数据,都涉及到用户态到内核态的切换。 于是select改进:将fd_set传入内核态,由内核判断是否有数据返回; 然后最low的只能使用自旋…

一、 select

最low的就是在用户代码中自旋实现所有阻塞socket的监听。但是每次判断socket是否产生数据,都涉及到用户态到内核态的切换。 于是select改进:将fd_set传入内核态,由内核判断是否有数据返回

然后最low的只能使用自旋来时刻的去判断socket列表中是否有数据达到。 于是select改进:使用等待队列,让线程在没有资源时park(阻塞),当有数据到达时唤醒select线程,去处理socket。

 缺点:

 二、epoll

epoll是在select出现N多年后才被发明的,是select和poll的增强版本。epoll通过以下一些措施来改进效率。

措施一:功能分离

select低效的原因之一是将“维护等待队列”和“阻塞进程”两个步骤合二为一。如下图所示,每次调用select都需要这两步操作,然而大多数应用场景中,需要监视的socket相对固定,并不需要每次都修改。epoll将这两个操作分开,先用epoll_ctl维护等待队列,再调用epoll_wait阻塞进程。

int s = socket(AF_INET, SOCK_STREAM, 0);   
bind(s, ...)
listen(s, ...)int epfd = epoll_create(...);
epoll_ctl(epfd, ...); //将所有需要监听的socket添加到epfd中while(1){int n = epoll_wait(...)for(接收到数据的socket){//处理}
}

措施二:就绪列表

select低效的另一个原因在于程序不知道哪些socket收到数据,只能一个个遍历。如果内核维护一个“就绪列表”,引用收到数据的socket,就能避免遍历。如下图所示,计算机共有三个socket,收到数据的sock2和sock3被rdlist(就绪列表)所引用。当进程被唤醒后,只要获取rdlist的内容,就能够知道哪些socket收到数据。

三、对比

 

http://www.yayakq.cn/news/879649/

相关文章:

  • 网站做盗版视频赚钱吗跨境电商快递怎么发到国外
  • 免费asp网站后台管理系统创网
  • 国外家具设计网站阜阳市城乡建设网站
  • 安顺北京网站建设朋友圈广告推广平台
  • 山西网站开发建设一般网站建设需求有哪些
  • 天河做网站要多少钱英文wordpress SEO
  • 济宁网站建设 智雅wordpress 无法添加媒体
  • 哪个公司的app软件定制长沙推广优化公司
  • 宁波网站建设制作公司排名界首做网站
  • 做塑料哪个网站好卖文具做网站好还是做电商好
  • 网站首页的名字通常是做网站的费用记哪个会计科目
  • 海口可信的海南网站建设沧浪设计网站公司
  • 建设银行网站登录不上广州网络推广公司有哪些
  • 在哪家网站做外贸比较好网站做系统下载
  • 网站建设汇报方案ppt模板德州鲁企动力网站优化中心
  • 前端工程师是做网站网站建设有几块
  • 重庆哪里做网站定制网站建设的释义
  • 鹿泉微信网站建设网站域名com和cn的差别在哪里
  • 网站建站 宝网站建设信息表
  • 学院网站的作用重庆十大房地产公司
  • 北京网站设计制作教程wordpress链接自定义后文章打不开
  • 榆林北京网站建设网站建设到上线的步骤过程
  • 网站开发工程师发展趋势大规模网站开发语言
  • 郑州网站设计制作哪家好摄影网站设计与实现
  • 网站打开是404青岛网站设计模板
  • android网站开发个人网页制作方案
  • 深圳网站建设-中国互联福建省建住房建设部网站
  • 2018年公司做网站注意事项wordpress建站行吗
  • 网站信息平台建设方案在线crm在线oa免费观看
  • 铜山徐州网站开发O2O网站开发工程师