文章目录

  • 阻塞IO
  • 非阻塞IO
  • 信号驱动IO
  • 异步IO
  • 总结

IO完成的过程:
1.等待IO就绪(满足IO的条件)
2.进行数据拷贝

阻塞IO

发起IO调用,若IO条件不具备,则一直等待

优点:流程简单,代码操作简单,任务顺序操作
缺点:无法充分利用资源,任务处理效率比较低

非阻塞IO

发起IO调用,若IO条件不具备,则立即报错返回,可以干点其他事情,完毕后循环回来重新发起IO请求

优点:任务处理小效率稍有提高,利用了IO等待时间可以干其他事情
缺点:流程相对于阻塞IO较为复杂,需要循环处理,响应不够实时,因为只有等事情办完之后才能循环回去重新发起IO

信号驱动IO

定义IO就绪信号处理方式,在处理方式中进行IO请求,进程可以一直干其他事,等到收到IO就绪信号的时候,会打断进程当前操作去处理进行IO
优点:相较于非阻塞IO,更加实时,资源利用更加充分
缺点:流程更加复杂了,需要定义信号处理,既有主控流程又有处理流程,涉及到信号是否可靠的问题

异步IO

IO顺序不确定,IO过程由系统完成,不自己进行,定义IO完成信号处理方式自定义,发起异步IO调用,告诉系统要完成什么功能,剩下的IO功能完全由系统完成,完成后通过信号通知进程

优点:对资源的利用最为充分,以最高效率进行任务处理
缺点:资源消耗比较高,流程最为复杂

总结

这四种IO,其实就是处理效率的逐步增加,对资源的利用更加充分,流程越来越复杂的进化过程
概念理解:

阻塞:为了完成一个功能,发起调用,若不具备完成功能的条件,则调用一直等待
非阻塞:为了完成一个功能,发起调用,若不具备完成功能的条件,则立即报错返回
阻塞与非阻塞的区别:常用于讨论调用函数是否阻塞,表示这个函数无法立即完成功能时是否立即返回

同步:功能完成的流程通常是顺序化的,并且功能是进程自身完成的
异步:功能完成的流程通常是不确定的,并且功能不是由进程自身完成的,由系统完成
异步的种类:异步阻塞—等着系统完成功能/异步非阻塞—不等待系统完成功能
同步与异步的区别:通常用于讨论功能的完成方式,表示一个功能是否是顺序完成且由自己来完成
同步好还是异步好:同步处理流程简单,同一时间占用资源少,但是异步处理效率高,同一时间占用资源多

典型IO模型----阻塞IO,非阻塞IO,信号驱动IO,异步IO相关推荐

  1. IO:同步,异步,阻塞,非阻塞

    IO - 同步,异步,阻塞,非阻塞 都是老生常谈的东西,多通读几遍,理解透彻! 实际上同步与异步是针对应用程序与内核的交互而言的.同步过程中进程触发IO操作并等待(也就是我们说的阻塞)或者轮询的去查看 ...

  2. 什么是IO多路复用_IO多路复用同步异步阻塞和非阻塞

    转自:http://www.elecfans.com/baike/wangluo/fuyongqi/20180307644141.html 一.什么是socket? 我们都知道unix(like)世界 ...

  3. 【Linux网络编程学习】阻塞、非阻塞、同步、异步以及五种I/O模型

    文章目录 1. 基本概念 1.1 阻塞与非阻塞 1.2 同步与异步 1.3 为什么没有"异步阻塞" 2. 五种IO模型 2.1 阻塞 blocking 2.2 非阻塞 non-bl ...

  4. Socket阻塞与非阻塞,同步与异步、I/O模型

    [原文链接] 1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式: 同步:       所谓同步,就是在发出一 ...

  5. 【精辟】socket阻塞与非阻塞,同步与异步,select,pool,epool

    socket阻塞与非阻塞,同步与异步 作者:huangguisu 1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调 ...

  6. IO模型(阻塞,非阻塞,多路复用)

    在了解IO模型前,先了解什么叫IO,IO得操作是怎么样的? IO既输入输出,指的是一切操作程序或设备与计算机之间发生的数据传输的过程.它分为IO设备和IO接口两个部分. IO设备:就是指可以与计算机进 ...

  7. IO复用模型同步,异步,阻塞,非阻塞及实例详解

    IO模型介绍 常用的5种IO模型:blocking IOnonblocking IOIO multiplexingsignal driven IOasynchronous IO 再说一下IO发生时涉及 ...

  8. setstate是同步还是异步_谈谈 IO模型:同步、异步、阻塞、非阻塞

    同步/异步.阻塞/非阻塞 说的是一回事儿吗? 同步/异步.阻塞/非阻塞 你能通俗易懂的讲清楚吗? Java 中的 BIO.NIO.AIO 你了解吗? Socket 编程你还会吗? Linux 操作系统 ...

  9. 阻塞和非阻塞、同步和异步 、五种IO模型

    阻塞和非阻塞,同步和异步 1 例子 故事:老王烧开水. 出场人物:老张,水壶两把(普通水壶,简称水壶:会响的水壶,简称响水壶). 老王想了想,有好几种等待方式 1.老王用水壶煮水,并且站在那里,不管水 ...

  10. IO模型_阻塞_非阻塞_多路复用

    在了解IO模型前,先了解什么叫IO,IO得操作是怎么样的? IO既输入输出,指的是一切操作程序或设备与计算机之间发生的数据传输的过程.它分为IO设备和IO接口两个部分. IO设备:就是指可以与计算机进 ...

最新文章

  1. c语言蜂鸣警报加循环,如何在此单片机程序基础上加入蜂鸣器报警啊
  2. Week4-作业1:阅读与博客
  3. 2019.01.19-2018年6月NEYC集训sequence
  4. Html5 Video 节点
  5. 【HDU - 5014】Number Sequence(贪心构造)
  6. 云服务器 存放 文件夹,云服务器 存放 文件夹
  7. Linux之rsync
  8. Tuxedo FAQs 整理
  9. Java Threads -- 数据同步(1)
  10. 51Nod 1274 - 最长递增路径(DP)
  11. mysql左连接右连接内连接的含义_MySQL-解释左连接,右连接,内连接,全连接
  12. rust : rustup切换stable、nightly
  13. 2020软考架构设计师真题
  14. 11.计算机基础之计算机网络基础
  15. 推动中国制造升级,汽车装配车间生产流水线 3D 可视化
  16. 循环世界模型(Recurrent World Models)——真实世界建模的强化学习利器
  17. JBoss学习和应用
  18. 换脸检测论文 FaceForensics++: Learning to Detect Manipulated Facial Images相关资料
  19. 中国地质大学(武汉)计算机考研资料汇总
  20. 安卓开源库 安卓相机开源库

热门文章

  1. 重磅!中国首家互联网银行联手腾讯、华为各大APP,最高5万额度,疯狂提额100亿!!!...
  2. 拯救红米note3砖头
  3. CSMA/CA精辟总结
  4. python股票技术指标计算,python股票量化交易(3)---趋势类指标MACD
  5. 总结:项管成本管理计算公式
  6. feature map理解
  7. 使用wxml2canvas将微信小程序页面转为图片
  8. 爬虫学习:基本库的使用
  9. 国际商务礼仪与标准接待风范
  10. 完美解决浏览器劫持方法,简单实用百试百灵!