因为某些行为需要做用户态和内核态的切换,所以才导致IO有同步和异步的说法。

同步IO

请求阻塞为同步IO,用户进程触发 I/O 操作并等待或轮询查看操作是否就绪。
同步 IO 的执行者是 IO 操作的发起者。
同步 IO 需要发起者进行内核态到用户态的数据拷贝过程,所以必须要阻塞。

异步IO

异步 IO 指的是用户进程触发 IO 操作后立即返回,当 IO 操作完成后会得到通知。
异步 IO 的执行者是内核线程,内核线程将数据从内核态拷贝到用户态,所以没有阻塞。