同步与异步,阻塞与非阻塞
Posted xiaoyuanr
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了同步与异步,阻塞与非阻塞相关的知识,希望对你有一定的参考价值。
同步与异步
如果在一个方法中调用另一个方法,当我们在讨论同步还是异步时,其实讨论的是被调用方的行为。
- 当被调用方在执行完逻辑之后才返回执行结果给调用方,也就是说调用方一直等待被调用方执行结束就是同步。
- 当被调用方在被调用之后没有计算出执行结果就立即返回就是异步。
所以被调用方,不立即返回就是同步,立即返回就是异步。
如果被调用方是异步,就必须提供某种方式让调用方知道它执行完了,以及执行的结果:
- 调用方提供回调方法给被调用方,被调用方在执行完了之后调用回调方法并传入执行结果。
- 被调用方尽管不返回执行结果,但会返回一个对象,调用方可以通过调用该对象获取/控制被调用方的执行进度。
阻塞与非阻塞
如果一个方法调用另一个方法,当我们在讨论是阻塞还是非阻塞时,其实讨论的是调用方的行为。
- 当被调用方返回执行结果之前,调用方什么都不做,一直等待被调用方,那就是阻塞。
- 方被调用方返回执行结果之前,调用方去执行其它的逻辑,那就是非阻塞。
以上是关于同步与异步,阻塞与非阻塞的主要内容,如果未能解决你的问题,请参考以下文章