最常用的 I/O 模型就是阻塞 I/O 模型,缺省的情况下,所有的文件操作都是阻塞的。我们可以简单的理解为一请求一响应,在没有响应的情况下,该请求端不会做任何其他的事情,一直在等待响应。
阻塞 I/O 的模型示意图如下:
我们可以看到,整个流程是一个串行的过程,从应用程序发起数据请求的时候,就会一直等待数据返回。应用程序在等待的过程中,不能做其他的事情。所以该流程被称为阻塞 I/O 流程。
阻塞 I/O 在 I/O 模型里面是最简单的 I/O 模型。它是发起请求然后等待结果返回的场景。在结果没有返回的时候,会一直等待,不做其它任何事情。这样系统的使用率就比较低,比较浪费系统资源。