阻塞/非阻塞讨论的前的是针对I/O的操作,当发起一个I/O操作调用请求时,调用一定要等到I/O读、写操作完全完成才返回
那么我们可以说这个I/O操作是阻塞的;反之,如果调用立即返回,但是I/O读、写操作结果需要通过后续通知获取,那么我们就说这个I/O操作是非阻塞的。
如下图:(a)阻塞,(b)非阻塞
阻塞、非阻塞一般是系统提供的底层API实现方式,业务代码很少涉及需要自己实现,因为这个是需要和操作系统、硬件进行交互的。
在Java中,传统IO和NIO就是对底层I/O操作进行的不同实现封装。