5种IO模型详解(select、poll、poll)

本文详细介绍了五种I/O模型:同步阻塞IO、同步非阻塞IO、多路复用IO、信号驱动IO及异步IO。通过对比不同模型的特点与应用场景,帮助读者理解各种模型的工作原理及其优缺点。

五种I/O模型

  1. 同步阻塞IO模型(BlockIng IO)
  2. 同步非阻塞IO模型(Non-blockIng IO )
  3. 多路复用IO模型(IO Multiplexing )
  4. 异步IO(Asynchronous IO)
  5. 信号驱动IO模型

首先,我们需要明确几个基础概念:

同步:操作系统种的概念:是指必须在先行条件满足之后才能开始执行某一任务。在这里主要是指在触发了IO操作之后必须等待IO操作完成,才能执行接下来的任务。有同步阻塞和同步非阻塞之分。

异步:是指可以和某一个任务同时进行,互不干扰。在这里主要是指出发了IO操作后可以同时执行其他的任务。

阻塞:表示是否停滞在某一状态,无法进行其他操作。

非阻塞:开始某一任务后,可以进行其他操作,但需要定时询问此任务是否完成,也称为轮询。

同步阻塞IO模型(BlockIng IO)
image-20210920162904497

​ 从图中可以看出,同步阻塞模型中,线程在进行了系统调用之后,由于数据还没有准备好,此后一直处于内核态,直到数据准备完成并且从内核的缓冲区中拷贝到用户态的数据区中,系统才从内核才切换成用户态,才能继续执行下面处理数据的操作。

​ 显而易见,这样的方式,大量的时间都阻塞在了内核态中,等待数据的时间都被白白浪费掉了。大大降低了系统的吞吐量,影响系统的并发性。

同步非阻塞IO模型:(Non-blocking IO)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值