之前的文章已经提到了 IO 模型之一的 NIO, 今天打算从 “阻塞”字面 以及java 代码层面再深一步聊一聊 NIO.《到底什么是 IO》 https://mp.weixin.qq.com/s/OkIajg8aDlkLtsE81NP5jQ
All is blocking
从严格意义上说,所有的请求都是阻塞的,原因是所有的请求发出去之后都会等待,只是等待时长多少而已,这点希望大家明白。
阻塞与非阻塞实际上就是阻塞的时间长短不同。
Blocking vs Non-Blocking
两者不同之处在于请求(或方法调用)无法正常处理(没有 ready)时的行为:
- Blocking-mode:客户端线程会一直阻塞等待返回;
- Non-Blocking: 服务端会立即返回,通知客户端线程无法处理,客户端线程不会阻塞;