io编程,python
2024-09-08 08:41:30
IO在计算机中指Input/Output,也就是输入和输出。
Stream(流):
可以把流想象成一个水管,数据就是水管里的水,但是只能单向流动。Input Stream就是数据从外面(磁盘、网络)流进内存,Output Stream就是数据从内存流到外面去。
由于CPU和内存的速度远远高于外设的速度,所以,在IO编程中,就存在速度严重不匹配的问题,处理的方法有:
同步IO:
第一种是CPU等着,也就是程序暂停执行后续代码,等100M的数据在10秒后写入磁盘,再接着往下执行
异步IO:
CPU不等待,只是告诉磁盘,“您老慢慢写,不着急,我接着干别的事去了”,于是,后续代码可以立刻接着执行
使用异步IO来编写程序性能会远远高于同步IO,但是异步IO的缺点是编程模型复杂。
你说“来个汉堡”,服务员告诉你,汉堡需要等5分钟,你可以先去逛商场,等做好了,我们再通知你,这样你可以立刻去干别的事情(逛商场),这是异步IO。
若为异步,你得知道什么时候通知你“汉堡做好了”,而通知你的方法也各不相同。如果是服务员跑过来找到你,这是回调模式,
如果服务员发短信通知你,你就得不停地检查手机,这是轮询模式。
最新文章
- Android SDK Manager无法更新的解决[ 转]
- Sql Server系列:DBCC命令
- JavaScript系列:计算一个结果为30的加法智力题
- php预定义常量$_SERVER
- mysql 学习碎片
- etc/ld.so.conf的使用说明
- JavaScript浏览器本地数据存储
- CRACKING THE CODING INTERVIEW 笔记(1)
- 图解单片机8位PWM、16位PWM中“位”的含义!
- [Swift]LeetCode680. 验证回文字符串 Ⅱ | Valid Palindrome II
- DirectX11 With Windows SDK--06 DirectXMath数学库
- 一步步建立 Vue + Cesium 初始化项目
- Vue2.x源码学习笔记-从一个小例子查看vm实例生命周期
- 20190403vim编辑器week1_day3
- Prometheus Redis_exporter
- 在linux环境下,php语法出错,怎样让php编译后提示编译错误,错误在哪?
- jqgrid子表格
- kafka-connect-hive sink实现要点小结
- Google的创新九原则(转)
- 角色用户权限RBAC