IO 相关概念
来源:互联网 发布:开淘宝店有什么要求吗 编辑:程序博客网 时间:2024/06/05 04:55
“一个IO操作其实分成了两个步骤:发起IO请求和实际的IO操作。“
阻塞IO和非阻塞IO的区别在于第一步,发起IO请求是否会被阻塞,如果阻塞直到完成那么就是传统的阻塞IO,如果不阻塞,那么就是非阻塞IO。
同步和异步是针对应用程序和内核的交互而言的,同步指的是用户进程触发IO操作并等待或者轮询的去查看IO操作是否就绪,而异步是指用户进程触发IO操作以后便开始做自己的事情,而当IO操作已经完成的时候会得到IO完成的通知。
而阻塞和非阻塞是针对于进程在访问数据的时候,根据IO操作的就绪状态来采取的不同方式,说白了是一种读取或者写入操作函数的实现方式,阻塞方式下读取或者写入函数将一直等待,而非阻塞方式下,读取或者写入函数会立即返回一个状态值。
所以,IO操作可以分为3类:同步阻塞(即早期的IO操作)、同步非阻塞(NIO)、异步(AIO)。
在此种方式下,用户进程在发起一个IO操作以后,必须等待IO操作的完成,只有当真正完成了IO操作以后,用户进程才能运行。JAVA传统的IO模型属于此种方式。
同步非阻塞:
在此种方式下,用户进程发起一个IO操作以后边可返回做其它事情,但是用户进程需要时不时的询问IO操作是否就绪,这就要求用户进程不停的去询问,从而引入不必要的CPU资源浪费。其中目前JAVA的NIO就属于同步非阻塞IO。
此种方式下是指应用发起一个IO操作以后,不等待内核IO操作的完成,等内核完成IO操作以后会通知应用程序。
0 0
- IO 相关概念
- IO流相关概念
- IO 概念
- 相关概念
- io相关
- IO相关
- Java基本功练习十三(字符串和文本IO【相关概念、基本方法使用】)
- [TZ]内存与IO访问(1)--地址,MMU、内存管理相关概念
- IO 流 概念
- java IO基础概念
- IO的几个概念
- “黑暗面程序员”Io概念
- IO流概念
- IO的几个概念
- IO/NIO概念总结
- 磁盘IO的概念
- IO的基础概念
- IO流的概念
- iOS开发 - 第04篇 - 网络 - 06 - 网页开发 & UIWebView代理 & JavaScript
- 慕课网实战—《用组件方式开发 Web App全站 》笔记三 -散点图组件开发
- 图片斜拼接
- Ubuntu16.04 安装搜狗输入法
- Spring aop +自定义annotation
- IO 相关概念
- 开发者所需要知道的 iOS 10 SDK 新特性
- sendfile原理,实现文件传输性能的提升
- 小白笔记------------------log4j笔记(1)
- php基础
- iOS UITableView长按cell复制内容
- session加入redis
- Windows下Apache与PHP的安装与配置
- Java正则表达式应用总结