返回「计算机、信息技术与工程」
同步和异步&阻塞和非阻塞
本文目录 7 个章节
同步和异步&阻塞和非阻塞
# 同步和异步&阻塞和非阻塞
创建时间:2020/6/17 21:05
同步和异步
同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)
同步(Synchronous)
同步,就是在发出一个 调用 时,在没有得到结果之前,该 调用 就不返回。但是一旦调用返回,就得到返回值了。换句话说,就是由 调用者 主动等待这个 调用 的结果。
同步是指:当程序1调用程序2时,程序1停下不动,直到程序2完成回到程序1来,程序1才继续执行下去。
同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。
异步(Asynchronous)
调用 在发出之后,方法调用就会立即返回,调用者就可以继续后续的操作。换句话说,当一个异步过程调用发出后,调用者不会立刻得到结果。而是在 调用 发出后, 被调用者 通过状态、通知来通知调用者,或通过回调函数处理这个调用。
异步是指:当程序1调用程序2时,程序1径自继续自己的下一个动作,不受程序2的的影响。
异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。
如何选择
就是看需要的请求的数据是否是程序继续执行必须依赖的数据 优缺点:
- 同步的执行效率会比较低,耗费时间,但有利于我们对流程进行控制,避免很多不可掌控的意外情况;
- 异步的执行效率高,节省时间,但是会占用更多的资源,也不利于我们对进程进行控制
阻塞和非阻塞
阻塞和非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态.
阻塞
阻塞调用是指调用结果返回之前,当前线程会被挂起。调用线程只有在得到结果之后才会返回。
非阻塞
非阻塞调用指在不能立刻得到结果之前,该调用不会阻塞当前线程。