NIO:同步非阻塞
首先一个IO操作其实分成了两个步骤:
- 发起IO请求;
- 实际的IO读写
下面从两个方面去解释同步和阻塞
第一方面
:
阻塞和非阻塞IO:
区别在于第一步,发起的IO请求的进程是否会被阻塞,阻塞IO是操作完成才返回,如果不阻塞就是非阻塞IO。
同步和异步IO:
区别在于第二步:同步需要进程参与IO读写,异步不需要。
第二方面:
同步和异步是针对调用方,阻塞与非阻塞是针对被调用方。
- 同步:需要等待调用函数的返回结果。 异步:不需要等待调用方法的返回结果。
- 非阻塞:被调用方立即返回结果就是非阻塞。 阻塞:需要等待处理过程结束后才返回结果。