同步&异步 阻塞&非阻塞 线程
同步&异步
同步和异步都是消息通信机制。
同步:调用者发出一个请求,在没有的到被调用的的响应结果之前。该调用就会一直等待而不进行返回。直到被调用者返回结果。就是说同步的消息机制当被调用者没有返回结果。调用者和被调用者之间的连接会一直占用着两端的资源。从而使得调用者没有去做其他的事情。
异步:调用者发出一个请求,被调用者直接返回,但是不是返回结果。换句话说,当一个异步过程调用发出后,调用者不会立刻得到结果。而是在调用发出后,被调用者通过状态、通知来通知调用者,或通过回调函数处理这个调用。
阻塞&非阻塞
阻塞:调用者向被调用者发出一个请求,在被调用者返回结果之前,调用者线程会因为等待而被挂起。调用者线程只有的到响应结果之后才会被唤醒执行后续的操作。
非阻塞:调用者向被调用者发出一个请求,在被调用者返回结果之前,调用者线程不会因为等待而被挂起,而是可以直接执行后续的操作。
区别:
阻塞/非阻塞:进程/线程需要操作的数据如果尚未准备就绪,是否阻碍当前进程/线程的后续操作。
同步/异步:数据如果尚未准备就绪,是否需要等待返回的数据结果。