IO在计算机中指Input/Output,也就是输入和输出。

Stream(流):

可以把流想象成一个水管,数据就是水管里的水,但是只能单向流动。Input Stream就是数据从外面(磁盘、网络)流进内存,Output Stream就是数据从内存流到外面去。

由于CPU和内存的速度远远高于外设的速度,所以,在IO编程中,就存在速度严重不匹配的问题,处理的方法有:

同步IO:

第一种是CPU等着,也就是程序暂停执行后续代码,等100M的数据在10秒后写入磁盘,再接着往下执行

异步IO:

CPU不等待,只是告诉磁盘,“您老慢慢写,不着急,我接着干别的事去了”,于是,后续代码可以立刻接着执行

使用异步IO来编写程序性能会远远高于同步IO,但是异步IO的缺点是编程模型复杂。

你说“来个汉堡”,服务员告诉你,汉堡需要等5分钟,你可以先去逛商场,等做好了,我们再通知你,这样你可以立刻去干别的事情(逛商场),这是异步IO。

若为异步,你得知道什么时候通知你“汉堡做好了”,而通知你的方法也各不相同。如果是服务员跑过来找到你,这是回调模式,

如果服务员发短信通知你,你就得不停地检查手机,这是轮询模式。

最新文章

  1. Android SDK Manager无法更新的解决[ 转]
  2. Sql Server系列:DBCC命令
  3. JavaScript系列:计算一个结果为30的加法智力题
  4. php预定义常量$_SERVER
  5. mysql 学习碎片
  6. etc/ld.so.conf的使用说明
  7. JavaScript浏览器本地数据存储
  8. CRACKING THE CODING INTERVIEW 笔记(1)
  9. 图解单片机8位PWM、16位PWM中“位”的含义!
  10. [Swift]LeetCode680. 验证回文字符串 Ⅱ | Valid Palindrome II
  11. DirectX11 With Windows SDK--06 DirectXMath数学库
  12. 一步步建立 Vue + Cesium 初始化项目
  13. Vue2.x源码学习笔记-从一个小例子查看vm实例生命周期
  14. 20190403vim编辑器week1_day3
  15. Prometheus Redis_exporter
  16. 在linux环境下,php语法出错,怎样让php编译后提示编译错误,错误在哪?
  17. jqgrid子表格
  18. kafka-connect-hive sink实现要点小结
  19. Google的创新九原则(转)
  20. 角色用户权限RBAC

热门文章

  1. 【QT】【OpenCv】初始配置以及测试功能
  2. Maven 私有库和本地库的安装与配置 Sonatype Nexus + Maven
  3. check_mk插件 redis
  4. ansible使用3-playbook
  5. JavaScript 获取 当前日期和三十天以前日期
  6. UE4工具
  7. now()与sysdate()的区别(1)
  8. 【BZOJ4487】[JSOI2015] 染色问题(高维容斥)
  9. IDEA的常用操作(快捷键)
  10. Node.js 的初体验