同步异步以及阻塞和非阻塞的区别

Posted lmh001

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了同步异步以及阻塞和非阻塞的区别相关的知识,希望对你有一定的参考价值。

一、同步与异步的区别:

 同步:一个服务的完成需要依赖其他服务时,只有等待被依赖的服务完成后,才算完成,这是一种可靠的服务序列。要么成功都成功,失败都失败,服务的状态可以保持一致。

 异步:一个服务的完成需要依赖其他服务时,只通知其他依赖服务开始执行,而不需要等待被依赖的服务完成,此时该服务就算完成了。被依赖的服务是否最终完成无法确定,它是一个不可靠的服务序列。

 

消息通知中的同步和异步:

  • 同步:当一个同步调用发出后,调用者要一直等待返回消息(或者调用结果)通知后,才能进行后续的执行;
  • 异步:当一个异步过程调用发出后,调用者不能立刻得到返回消息(结果)。在调用结束之后,通过消息回调来通知调用者是否调用成功。

 

 

二、阻塞与非阻塞的区别

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

  非阻塞:非阻塞和阻塞的概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。

 

常见的IO模型有阻塞、非阻塞、IO多路复用,异步。

 

以上是关于同步异步以及阻塞和非阻塞的区别的主要内容,如果未能解决你的问题,请参考以下文章

同步异步以及阻塞和非阻塞的区别

同步异步阻塞和非阻塞之间的区别

同步和异步以及阻塞和非阻塞

IO复用,AIO,BIO,NIO,同步,异步,阻塞和非阻塞 区别

IO复用,AIO,BIO,NIO,同步,异步,阻塞和非阻塞 区别

同步/异步/阻塞/非阻塞