同步IO 异步IO 之间的区别
2014-11-25 18:14
134 查看
I/O 既 输出/输入 (Input/Output)
既然是输入输出,为什么又会有同步和异步的不同方式呢?
同步 当一个IO操作进行时,系统停下来等待这个IO的操作完成后才会继续进行下面的计算。
异步 当一个IO操作进行时,通过多线程等方法,让CPU去处理那些不需要依赖IO执行结果的计算,充分的利用CPU的运算能力。当IO操作执行完毕时,继续执行后续的操作。
一般情况下,作为单机程序或者IO反应速度非常快、等待时间非常短,使用“同步”方式对于编程的稳定性、简单性都是很好的选择,一个操作完成后再去执行其他的操作。
但是如果IO的等待时间比较长,比如打印机、慢速网络,“异步”方式就会显得非常重要了。
想象一下,如果打印机开始打印Word就不能进行任何的操作,用户岂不是要等的心发慌?
异步操作 往往是和多线程并行密切相关的,也是目前多路、多核CPU能够释放威力的强大武器。
转自:http://blog.163.com/yangzhiyao82@126/blog/static/225322362010914111138140/
既然是输入输出,为什么又会有同步和异步的不同方式呢?
同步 当一个IO操作进行时,系统停下来等待这个IO的操作完成后才会继续进行下面的计算。
异步 当一个IO操作进行时,通过多线程等方法,让CPU去处理那些不需要依赖IO执行结果的计算,充分的利用CPU的运算能力。当IO操作执行完毕时,继续执行后续的操作。
一般情况下,作为单机程序或者IO反应速度非常快、等待时间非常短,使用“同步”方式对于编程的稳定性、简单性都是很好的选择,一个操作完成后再去执行其他的操作。
但是如果IO的等待时间比较长,比如打印机、慢速网络,“异步”方式就会显得非常重要了。
想象一下,如果打印机开始打印Word就不能进行任何的操作,用户岂不是要等的心发慌?
异步操作 往往是和多线程并行密切相关的,也是目前多路、多核CPU能够释放威力的强大武器。
转自:http://blog.163.com/yangzhiyao82@126/blog/static/225322362010914111138140/
相关文章推荐
- Jquery AJAX POST与GET之间的区别
- 同步IO 异步IO 之间的区别
- Git 和 SVN 之间的五个基本区别
- 深入C#内存管理来分析值类型&引用类型,装箱&拆箱,堆栈几个概念组合之间的区别
- lock Mutex Monitor 之间的区别与详解, .net 多线程 同步异步操作,锁
- 阻塞、非阻塞与异步、同步之间的区别
- java IO 概念误区---------同步/异步与阻塞/非阻塞的区别
- 领域分析&需求分析之间的区别
- 指针赋值 int a[5]={.... ...}, a 、&a[0]、 &a三者之间的区别 浅析 C/C++求职面试必备考点(五) .
- java IO 概念误区---------同步/异步与阻塞/非阻塞的区别
- linux 下ARM 与X86之间对外部设备IO映射的区别
- C#中string.Empty、""和null 之间的区别 .
- int的一点事,读《深入C#内存管理来分析值类型&引用类型,装箱&拆箱,堆栈几个概念组合之间的区别》
- C#中string.Empty、""和null 之间的区别
- Xen半虚拟化下,IO共享环、事件通道、授权表之间的联系和区别
- 广义同步&异步 阻塞&非阻塞 及 网络IO中的同步&异步,阻塞&非阻塞
- C# Interface & Abstract Class 之间的区别
- JAVA中Double与double(Integer&int)之间的区别
- int的一点事,读《深入C#内存管理来分析值类型&引用类型,装箱&拆箱,堆栈几个概念组合之间的区别》