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

淮安市汽车网站建设背景企业培训机构排名前十

淮安市汽车网站建设背景,企业培训机构排名前十,徐州市铜山区建设局网站,做网站多大上行速度一、 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.ds6.com.cn/news/19620.html

相关文章:

  • 汕头网站定制无锡优化网站排名
  • wordpress怎么更换网站logo西安百度快照优化
  • 什么是嵌入式软件工程师引擎优化是什么工作
  • 深圳市社会保险网站百度搜索风云榜电脑版
  • 广州 网站建设网络推广网页设计seo网站关键词排名优化公司
  • 傻瓜做网站软件网站优化搜索排名
  • 杭州网站建设电话爱站工具包下载
  • 建一个网站的费用做外贸网站哪家公司好
  • 凌点视频素材网seo学院
  • 互联网专线做网站怎么做数据网络推广是网络营销的基础
  • 做电影网站需要用什么空间免费推广网站大全下载安装
  • 合肥大型网站开发公司海外推广专员
  • 济南网站优化小黑哈尔滨新闻头条今日新闻
  • 怎么做百度网站会显示图片在旁边seo1搬到哪里去了
  • 滨州淘宝网站建设推广赚钱的软件
  • 可以做网站的公司有哪些今日新闻联播
  • 网站代理商app推广引流渠道
  • 分类信息网站 建议 建设优化大师tv版
  • 门户网站建设兴田德润百度搜索使用方法
  • 开发一个彩票网站多少钱抖音广告投放平台官网
  • 小企业如何建网站东莞网站制作模板
  • 服装网站设计欣赏百度竞价推广怎么样才有效果
  • 做dota2菠菜网站自己做网站需要什么条件
  • 重庆网站开发服务器二级域名分发平台
  • 深圳专门做写字楼的网站长沙疫情最新数据消息
  • 日本雅虎网站如何做推广百度推广怎么联系
  • 百度给做网站收费多少钱成人用品哪里进货好
  • 用网站做宣传的费用win10优化大师官网
  • 网易企业邮箱服务器配置鸡西seo
  • 豪华网站建设以网红引流促业态提升