一、基本概念---阻塞(Blocking I/O)/非阻塞(Non-blocking I/O),同步(Synchronous I/O)/异步(Asynchronous I/O):
在进行网络编程时,我们常常见到同步(Synchronous I/O)/异步(Asynchronous I/O),阻塞(Blocking I/O)/非阻塞(Non-blocking I/O)四种调用方式,下面将这几个基本概念解释一下:
1. 同步/异步:【主要针对C端】
所谓同步,就是在C端发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。
例如普通B/S模式(同步):提交请求--->等待服务器处理--->处理完毕返回。 整个期间客户端浏览器不能干任何事。
而异步的概念和同步相对,当C端一个异步过程调用发起后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。
例如:ajax请求(异步):请求通过事件触发--->服务器处理(这是浏览器仍然可以作其他事情)--->处理完毕。
Java