同步异步阻塞非阻塞
Posted Yienfong_Chueng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了同步异步阻塞非阻塞相关的知识,希望对你有一定的参考价值。
1、同步异步:同步与异步主要是从消息通知机制角度来说的。
同步:一个任务的完成需要依赖另外一个任务时,只有等待被依赖的任务完成后,依赖的任务才能算完成,这是一种可靠的任务序列。
异步:不需要等待被依赖的任务完成,只是通知被依赖的任务要完成什么工作,依赖的任务也立即执行,只要自己完成了整个任务就算完成了。至于被依赖的任务最终是否真正完成,依赖它的任务无法确定,所以它是不可靠的任务序列。
消息通知:当一个同步调用发出后,调用者要一直等待返回消息(结果)通知后,才能进行后续的执行;当一个异步过程调用发出后,调用者不能立刻得到返回消息(结果)。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。
2 阻塞与非阻塞:阻塞与非阻塞主要是程序(线程)等待消息通知时的状态角度来说的。
阻塞调用:阻塞调用是指调用结果返回之前,当前线程会被挂起,一直处于等待消息通知,不能够执行其他业务。
同步调用:同步调用来说,很多时候当前线程可能还是激活的,只是从逻辑上当前函数没有返回而已,此时,这个线程可能也会处理其他的消息。
同步阻塞:如果这个线程在等待当前函数返回时,没有执行其他消息处理,而是处于挂起等待状态,那这种情况就叫做同步阻塞;
阻塞调用:当前线程就会被挂起等待当前函数返回;
更详细的阐述可以看原文:
聊聊同步、异步、阻塞、非阻塞
以上是关于同步异步阻塞非阻塞的主要内容,如果未能解决你的问题,请参考以下文章