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

网站管理与开发怎么做网站上海旅游网站建设

网站管理与开发怎么做网站,上海旅游网站建设,域名自动更新中,网站推广话术目录 前言 文件描述符 为什么要多种io模型 同步IO 1.阻塞IO 2.非阻塞IO 3.多路复用IO#xff08;事件驱动IO#xff09; select: poll#xff1a; epoll#xff1a; 4.信号驱动IO 异步IO 区别 前言 文件描述符 首先我们了解一下文件描述符是什么#xff1a;…目录 前言 文件描述符 为什么要多种io模型 同步IO 1.阻塞IO 2.非阻塞IO 3.多路复用IO事件驱动IO select: poll epoll 4.信号驱动IO 异步IO 区别 前言 文件描述符 首先我们了解一下文件描述符是什么在linux下一切皆文件进程是通过文件描述符(file descriptors)来访问文件的。默认有三个文件描述符0(标准输入)1(标准输出)2(标准错误)。再打开一个新的文件的话它的文件描述符就。 为什么要多种io模型 网络IO会涉及到两个系统对象一个是用户空间调用IO的进程或线程另一个是内核空间的内核系统比如发生IO操作read时它会经历两个阶段。 1.等待数据准备就绪2.将数据从内核拷贝到进程或线程中 因为在以上两个阶段上各有不同的情况所以出现了多种网络 IO 模型。 同步IO 1.阻塞IO 在linux下所有socket默认都是阻塞的我要向一个文件描述符做read操作此时内核里没有数据就绪那么这个时候用户进程就会阻塞直到内核数据就绪了会将数据从内核拷贝到用户内存然后返回结果此时用户进程解除阻塞状态。 优点开发简单在阻塞期间用户线程挂起挂起不会占用CPU资源。 缺点不适合大并发开销会非常大。 但是如果有多个client阻塞IO就不适用了所以引用了多线程但是如果数据规模太大了会很占用系统资源而且线程和进程容易进入假死状态。如果用线程池的话数据规模非常非常大线程池可能缓解部分压力但是不能解决所有问题所以我们要引入其它io模型。 2.非阻塞IO 设置socket为非阻塞如果内核还未将数据准备好,系统调用仍然会直接返回。我要向一个文件描述符做read操作如果有数据则成功读取返回如果没有数据也返回但带上错误码。使用这种方式的话我们做读取就必须每隔一段时间去看看叫非阻塞轮询检测。 但是轮询提高CPU占用率并且系统也提供了select多路复用模式可以一次检测多个连接是否活跃所以非阻塞IO一般在特定场景使用。 优点每次发起 IO 调用在内核等待数据的过程中可以立即返回用户线程不会阻塞实时性好 缺点多个线程不断轮询内核是否有数据占用大量 CPU 资源效率低。 3.多路复用IO事件驱动IO 单个进程/线程就可以同时处理多个IO请求一个进程/线程可以监视多个文件句柄。 而多路复用IO利用了操作系统提供的一些机制如select、poll、epoll来同时监视多个I/O事件的状态。 select: 底层是数组采用轮询当用户进程调用了 select每次调用select()方法都需要把 fd 集合从用户态拷贝到内核态并进行遍历。那么整个进程会被阻塞一旦某个文件句柄就绪select 就会返回。这个时候用户进程再调用 read 操作将数据从内核拷贝到用户进程。 poll poll用链表方式存fd没有最大数量fd限制其余和select一样。 epoll 只会返回就绪的文件描述符而不是遍历整个文件描述符集合。 红黑树方式存fd没有最大数量fd限制可保存所有待检测的socket所以只需要拷贝一次减少了内核和用户空间大量的数据拷贝和内存分配回调方式不是轮询不会因为fd增多性能下降。缺点只能在Linux下工作。 这里补充一个知识点 Reactor反应堆三部分组成多路复用器同时阻塞io socket事件派发事件处理回调处理。 4.信号驱动IO 内核将数据准备好的时候使用SIGIO信号通知应用程序进行IO操作。 异步IO 用户进程发起操作之后就可以开始去做其它的事。而另一方面当内核收到read后首先它会立刻返回所以不会对用户进程产生任何阻塞。然后内核会等待数据准备完成然后将数据拷贝到用户内存然后会给用户进程发送一个信号告诉它操作完成了。 区别 阻塞IO非阻塞IO多路复用IO信号驱动IO这四种的主要区别在第一阶段他们在第二阶段是一样的数据从内核缓冲区复制到调用者缓冲区期间都被阻塞住。异步 IO 都是非阻塞。 同步和异步看是谁把内核缓冲区数据拷贝到用户缓冲区的如果不是自己写代码实现的那就是异步。
http://www.hkea.cn/news/14525215/

相关文章:

  • 哪些网站可以找到做药人的信息北京科技公司
  • 无icp备案的网站合法吗友情链接多久有效果
  • 亚马逊在电子商务网站建设北京做网站公司哪家强
  • 济南哪里有做网站的网站设计与网页制作在线
  • 郑州区块链数字钱包网站开发过程wordpress 中表格 宽度
  • 上海网站建设的价格低小程序游戏源码wordpress
  • 长沙口碑好的做网站公司哪家好打开英文网站字体不对
  • 网站系统 建设和软件岗位职责网站直播的功能怎样做
  • 做家务的男人网站特种工建设网站
  • 公司有些网站打不开wordpress the7汉化版
  • 做面包网站抖音小程序多少钱
  • 南宁seo网站排名优化广告logo图片大全
  • 电子商务网站建设 上海那里有做网站
  • 温州苍南网站建设图书网站建设实训心得
  • 大型网站tag标签 索引wordpress怎么连接主机
  • 网站建设一般用英文怎么说做网站 就上宝华建站
  • 备案网站多长时间站群cms建站系统免费
  • 做网站打广告图片素材北京网站建设认知
  • 域名注册网站免费网站排名应该怎么做
  • 如何给网站做关键字怎么找网站站长
  • 重庆中小企业网站建设公司ppt哪个网站做的好
  • 湖南宁乡建设局网站两学一做微网站交流
  • 个人网站方案建设书网站seo快速优化
  • 网站建设要哪些seo网络软件开发专业是做什么的
  • 网站建设优化服务策划响应式网站建设准备
  • 山东省建设工程质量监督总站网站网页设计模板图片
  • 网站名称填写什么深圳高端设计公司名单
  • 简单的网站源码新东方烹饪学校学费价目表
  • 为什么要建设门户网站长兴县建设局网站
  • 网络维护网站美工惠州网站建设哪家强