同步/异步

同步与异步是IO操做与CPU指令协做方式的不一样

同步sync

阻塞blocking:同一条线程独自完成IO操做和CPU指令操做,全程阻塞
非阻塞non-blocking:系统内核封装了检查IO的执行线程,等资源加载完后通知应用程序线程进行操做处理,虽然不用等待资源下载,但本质上仍是阻塞,只是阻塞的位置变了。

ps:不管是阻塞仍是非阻塞,io读写和cpu执行指令是耦合的,系统内核拷贝数据到程序进程的过程仍是阻塞的,但这样作能够保证执行顺序!

异步async

解耦了IO操做和CPU执行指令,IO操做和CPU执行指令都暴露出去,让程序员控制, cpu不去参与IO的事情,IO处理完回调给应用程序即可,数据交互无需拷贝一份到程序进程,经过内存映射的方式避免了CPU的参与,但这样作执行顺序没法控制!