I/O阻塞和非阻塞和同步异步总结:
I/O:就是内存和外部设备(网络/磁盘/终端),相互复制数据的过程,分为两个阶段:准备数据和返回结果
I/O阻塞: 系统发起调用请求后,进程会等待准备数据和返回结果两个阶段完成再返回,这个过程是同步的;
I/O非阻塞: 系统发起调用请求后,当数据还没有准备好,就会立马返回进程数据还没有准备好,用户进程会不停的轮询内核,当数据准备好,进程会拷贝数据。所以说这个过程是同步的;

同步: 执行完一个任务,才能执行下一个任务,当有任务挂起时,线程会处于等待状态,多半多切到其他线程去处理事情。
异步:执行一个异步任务,不需要等待结果返回,继续往下执行其他任务(异步任务发起之后,会通知相应的协程注册回调函数,等待结果返回,对应的协程会添加回调函数到任务队列中等待执行)

I/O阻塞和非阻塞和同步异步没有关系,I/O阻塞和非阻塞都是同步过程。

这里还涉及I/O异步:系统发起调用请求后,会立刻返回,用户可以做其他事情,等两个阶段都完成后会通知进程;这种情况只在 Linux 环境下,没有任务队列之说。

参考文档