同步IO、异步IO、阻塞IO、非阻塞IO
同步和异步是针对应用程序(用户空间)和内核的交互而言的。
阻塞和非阻塞指的是用户空间和内核空间IO操作的方式。
同步:用户空间要的数据,必须等到内核空间给它才做其他事儿。
异步:用户空间要的数据,不需要等到内核空间给它,才做其他事情。内核空间会异步通知用户进程,并把数据直接给到用户空间。
阻塞:用户空间通过系统调用(systemcall)和内核空间发送IO操作时,该调用是阻塞的 (即该调用要一直等待到内核空间处理返回结果)
非阻塞:用户空间通过系统调用(systemcall)和内核空间发送IO操作时,该调用时不阻塞的(即该调用发送到内核空间之后,立即返回,内核空间处理结果需要用户空间再次轮询发起调用获取),直接返回的,只是返回时,可能没有数据而已。
同步阻塞IO

同步非阻塞线IO

用户线程发起IO请求时立即返回。但并未读取到任何数据,用户线程需要不断发起IO请求,知道数据到达后,才真正读取到数据,继续执行。
浙公网安备 33010602011771号