请你说一下阻塞,非阻塞,同步,异步
同步/异步主要针对客户端:
同步:就是当客户端发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是说必须一件一件的事情去做,等一件做完了才能去做下一件。
异步:就是当客户端发出一个功能调用时,调用者不用等接收方发出响应。实际处理这个调用的部件在完成后,会通过状态,通知和回调来通知调用者。客户端可以接着去做 后面的事情。
虽然主要是针对客户端,但是服务器端不是完全没有关系的,同步/异步必须配合服务器端才能实现。同步/异步是由客户端自己控制,但是服务器端是否阻塞/非阻塞,客户端完全不需要关心。
阻塞/非阻塞主要是针对服务器端:
阻塞:阻塞调用是指服务器端被调用者调用结果返回之前,当前线程会被挂起。调用线程只有在得到结果之后才会返回。
非阻塞:指在不能立即得到结果之前,该调用不会阻塞当前线程。