五种IO通信模型

本文详细解释了同步与异步、阻塞与非阻塞的区别,并深入介绍了五种IO通信模型:阻塞I/O、非阻塞I/O、多路复用I/O、信号驱动I/O和异步I/O,分析其特点与适用场景,帮助理解网络通信中的IO处理方式。
摘要由CSDN通过智能技术生成

相关概念:

在说五种IO通信模型之前,先说下几个容易混淆的概念,同步和异步,阻塞和非阻塞。

同步和异步:

主要是看调用方获取结果是主动发起的,还是被动通知的。主动发起的就是同步,被动通知的就是异步。

阻塞和非阻塞:

调用方调用某个方法后,在获取到返回结果之前。如果当前的线程处于挂起状态,什么都不能干,则是阻塞。如果当前线程是运行状态,可以处理其他任务,则是非阻塞。
举个例子,线程A调用了接口B后,一直等待接口的返回结果,则属于同步阻塞,如果线程A可以处理其它任务,但是需要不断轮询查看接口的返回结果,则属于同步非阻塞。如果线程A一直等着接口B的回调来获取结果,则属于异步阻塞,如果线程A可以处理其它任务,服务方会主动通知线程A的执行结果,则属于异步非阻塞。

五种IO通信模型

网络IO一般分为两步,第一步是等待数据,第二步是拷贝数据。由于等待数据一般会占用比较长的时间,为了提高IO效率,会考虑将步骤采用非阻塞的方式,或者异步的方式,或者采用多线程等。常见的IO模型有阻塞I/O、非阻塞I/O、多路复用I/O、信号驱动I/O、异步I/O。

1.阻塞I/O模型

在这里插入图片描述
阻塞IO交互上可以分为两个阶段:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值