同步IO,异步IO
来源:互联网 发布:美工kpi绩效考核表 编辑:程序博客网 时间:2024/06/11 18:28
有两种类型的文件IO同步:同步文件IO和异步文件IO。异步文件IO也就是重叠IO。在同步文件IO中,线程启动一个IO操作然后就立即进入等待状态,直到IO操作完成后才醒来继续执行。而异步文件IO方式中,线程发送一个IO请求到内核,然后继续处理其他的事情,内核完成IO请求后,将会通知线程IO操作完成了。
如果IO请求需要大量时间执行的话,异步文件IO方式可以显著提高效率,因为在线程等待的这段时间内,CPU将会调度其他线程进行执行,如果没有其他线程需要执行的话,这段时间将会浪费掉(可能会调度操作系统的零页线程)。如果IO请求操作很快,用异步IO方式反而还低效,还不如用同步IO方式。
同步IO在同一时刻只允许一个IO操作,也就是说对于同一个文件句柄的IO操作是序列化的,即使使用两个线程也不能同时对同一个文件句柄同时发出读写操作。重叠IO允许一个或多个线程同时发出IO请求。
异步IO在请求完成时,通过将文件句柄设为有信号状态来通知应用程序,或者应用程序通过GetOverlappedResult察看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/阻塞IO/非阻塞IO
- 同步IO,异步IO,阻塞IO,非阻塞IO
- 同步IO/异步IO/阻塞IO/非阻塞IO
- 同步IO,异步IO,IO阻塞,IO非阻塞
- ORACLE日期时间函数大全
- iOS图片拉伸
- hibernate与ibatis比较的11大优势
- [TROUBLESHOOTING]奇怪的【索引中丢失 IN 或 OUT 参数】
- 深入理解Memcache原理
- 同步IO,异步IO
- linux下date函数的使用
- 双击事件的简单实现
- 微信开发(四)Django问答类微信号开发
- 快速排序
- 彩色图像直方图均衡化 --- 基于OpenCV中EqualizeHist_Demo实现
- 程序员必须认识的5件事情(ipvb学习网)
- android:backgroundDimEnabled的作用
- tigase的笔记一 — 基本的配置