同步异步阻塞非阻塞

Posted Yienfong_Chueng

tags:

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

1、同步异步:同步与异步主要是从消息通知机制角度来说的。
同步:一个任务的完成需要依赖另外一个任务时,只有等待被依赖的任务完成后,依赖的任务才能算完成,这是一种可靠的任务序列。

异步:不需要等待被依赖的任务完成,只是通知被依赖的任务要完成什么工作,依赖的任务也立即执行,只要自己完成了整个任务就算完成了。至于被依赖的任务最终是否真正完成,依赖它的任务无法确定,所以它是不可靠的任务序列。

消息通知:当一个同步调用发出后,调用者要一直等待返回消息(结果)通知后,才能进行后续的执行;当一个异步过程调用发出后,调用者不能立刻得到返回消息(结果)。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。

2 阻塞与非阻塞:阻塞与非阻塞主要是程序(线程)等待消息通知时的状态角度来说的。
阻塞调用:阻塞调用是指调用结果返回之前,当前线程会被挂起,一直处于等待消息通知,不能够执行其他业务。

同步调用:同步调用来说,很多时候当前线程可能还是激活的,只是从逻辑上当前函数没有返回而已,此时,这个线程可能也会处理其他的消息。

同步阻塞:如果这个线程在等待当前函数返回时,没有执行其他消息处理,而是处于挂起等待状态,那这种情况就叫做同步阻塞;

阻塞调用:当前线程就会被挂起等待当前函数返回;

更详细的阐述可以看原文:
聊聊同步、异步、阻塞、非阻塞

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

并行,并发,串行,同步,异步,阻塞,非阻塞,同步阻塞,同步非阻塞,异步阻塞,异步非阻塞

同步异步、阻塞非阻塞、Netty

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

同步异步阻塞和非阻塞

正确理解同步/异步和阻塞/非阻塞的区别:

阻塞、非阻塞、多路复用、同步、异步、BIO、NIO、AIO 一文搞定