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

一般做企业网站需要什么深圳百度关键词排名

一般做企业网站需要什么,深圳百度关键词排名,广东省政府疫情防控新闻发布会,网络推广这个工作好做吗目录 前言 文件描述符 为什么要多种io模型 同步IO 1.阻塞IO 2.非阻塞IO 3.多路复用IO(事件驱动IO) select: poll: epoll: 4.信号驱动IO 异步IO 区别 前言 文件描述符 首先我们了解一下文件描述符是什么:…

目录

前言

文件描述符

为什么要多种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.mnyf.cn/news/52441.html

相关文章:

  • 北京网站技术开发公司google谷歌搜索主页
  • 桂林网站建设凡森网络seo排名怎么做
  • 网站建设模板坏处简述网络营销的特点
  • 东莞网站制作厦门百度广告
  • 时尚类网站设计公司想要网站导航推广页
  • qq邮箱官方网站友情链接交换网站
  • 怎样靠做网站赚钱吗舆情网站直接打开的软件
  • 宜宾做网站公司seo千享科技
  • 几何图形生成网站吴中seo网站优化软件
  • 动漫制作专业用什么样的电脑比较好泽成杭州seo网站推广排名
  • 摄影欣赏网站哪个最好漯河搜狗关键词优化排名软件
  • 室内设计师招聘网站网络推广引流
  • 黑龙省建设厅网站武汉最新今天的消息
  • 做网站都需要什么百度查重免费入口
  • 福建省人民政府参事是什么级别seo搜索优化培训
  • vs网站开发视频教程线上销售如何找到精准客户
  • 企业手机网站谷歌海外推广
  • 利用黑群晖做网站岳阳网站界面设计
  • 装饰公司营销网站建设政府免费培训 面点班
  • 商城网站 运营短链接在线生成器
  • 虹口手机网站制作快速排名程序
  • 做企业网站类型百度正版下载恢复百度
  • 济南建站软件哈尔滨百度推广联系人
  • 网站建设方式优化排名推广教程网站
  • wordpress 图片上传路径厦门seo搜索排名
  • 自驾旅游服务网站开发文献综述一份完整的品牌策划方案
  • 网站对比分析北京网站优化技术
  • 海外购物网站上填手机号码怎么做广州网络公司
  • 代写网站竞价推广代运营
  • 聊城做网站费用价格百度点击器下载