科学知识:同步、异步、阻塞和非阻塞区别
当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。当连接真正建立起来以后,socket底 层会发送一个消息通知该对象。可以使用哪一种依赖于执行部件的实现,除非执行部件提供 多种选择,否则不受调用者控制。如果是使用通知的方式,效率则很高,因为执行部件几乎不需要做额外的操作。函数只有在得到结果之后才会返回。当socket工作在阻塞模式的时候, 如果没有数据的情况下调用该函数,则当前线程就会被挂起,直到有数据为止。对象是否处于阻塞模式和函数是不是阻塞调用有很强的相关性,但是并不是一一对应的。