I/O 既 输出/输入 (Input/Output)
既然是输入输出,为什么又会有同步和异步的不同方式呢?
同步 当一个IO操作进行时,系统停下来等待这个IO的操作完成后才会继续进行下面的计算。
异步 当一个IO操作进行时,通过多线程等方法,当CPU去处理那些不需要依赖IO执行结果的计算,充分的利用CPU的运算能力。当IO操作执行完毕时,继续执行后续的操作。
一般情况下,作为单机程序或者IO反应速度非常快等待时间非常短,使用“同步”方式对于编程的稳定性、简单性都是很好的选择,一个操作完成后再去执行其他的操作。
但是如果IO的等待时间比较长,比如打印机、慢速网络,“异步”方式就会显得非常重要了。
想象一下,如果打印机开始打印Word就不能进行任何的操作,用户岂不是要等的心发慌?
异步操作 往往是和多线程 并行 密切相关的,也是目前多路、多核CPU能够释放威力的强大武器。