天天看点

阐释同步与异步,阻塞与非阻塞的区别A.同步与异步B.阻塞与非阻塞[举例说明]:

阐释同步与异步,阻塞与非阻塞的区别

  • A.同步与异步
    • 同步和异步关注的是消息通信机制
  • B.阻塞与非阻塞
    • 阻塞和非阻塞关注的是程序在等待调用返回结果时的状态.
  • [举例说明]:

A.同步与异步

同步和异步关注的是消息通信机制

同步:当一个进程在执行某个请求的时候,该进程要一直等待该请求的结果返回后,才能进行后续的执行。

异步:当一个进程在执行某个请求的时候,该进程不必一直等待调用结果的返回,而是继续执行后续的操作。当被调用方有结果返回时,会callback回调通知该进程进行处理。

B.阻塞与非阻塞

阻塞和非阻塞关注的是程序在等待调用返回结果时的状态.

阻塞:是指调用结果返回之前,当前线程会被挂起。一直处于等待消息通知,不能够执行其他业务,调用线程只有在得到结果之后才会返回。

非阻塞:指在该进程在等待时,不会阻塞当前线程,而会执行其他操作。

[举例说明]:

我要干两件事:烧一壶水和看电视,但是烧水在厨房,看电视在客厅。厨房里有2个水壶,一个是普通的水壶,另一个是水开了会鸣笛的水壶。我可以:

1.用普通的水壶烧,人在厨房里看着,水开了才能去客厅看电视。 ---------> (同步,阻塞)

2.用普通的水壶烧,人去客厅看电视,隔几分钟去厨房看一下。 ------------> (同步,非阻塞)

3.用会鸣笛的水壶,人在走廊里傻等着水壶鸣笛。 ----------------------------> (异步,阻塞)

4.用会鸣笛的水壶,人去看电视,听见水壶叫了再去看。 ---------------------> (异步,非阻塞)

普通水壶,需要值守:				同步
会叫的水壶,有反馈通知,不需要值守:	异步
等着看电视的我:					阻塞(状态)
看着电视的我:					非阻塞(状态)

所以,异步往往配合非阻塞,才是效率最大化。
           
阐释同步与异步,阻塞与非阻塞的区别A.同步与异步B.阻塞与非阻塞[举例说明]:

/

继续阅读