同步异步阻塞和非阻塞
Posted iamsmiling
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了同步异步阻塞和非阻塞相关的知识,希望对你有一定的参考价值。
以前对同步、异步、阻塞和非阻塞的概念没有清晰的认识,错误地认为:同步=阻塞,异步=非阻塞。因此,在这里,对同步、异步、阻塞和非阻塞重新学习
参考链接:
聊聊同步、异步、阻塞与非阻塞
什么是同步,什么是异步?
- 首先,我们要明确一点。同步和异步的概念和消息的通知机制有关。认识到这一点非常重要。
同步和异步其实指的是请求发起方对消息结果的获取是主动发起的还是被动通知的。
- 如果是请求发起方主动对消息结果发起请求则是同步。
- 如果是请求发起方被动消息结果的等待通知,那么属于异步。
# 什么是阻塞,什么是非阻塞?
- 阻塞是指在结果返回之前,我们什么都不能做,只能等待结果返回。
- 非阻塞是指在结果返回之前,我们可以进行其他的操作。等结果返回后,我们再继续当前未完成的操作。
同步
——|同步阻塞 同步阻塞是指请求发出后,一开始主动询问任务是否有结果,什么也不能干,只能一直等待应答结果。
——|同步非阻塞 同步非阻塞是指请求主动发出后,可以先去处理其他的事情。但是需要不断轮询查看请求是否有结果。注意**同步非阻塞**有一个不断轮询的过程。
异步
——| 异步阻塞 异步阻塞是指请求发出后,什么也不能干,一直等待结果的返回。
——| 异步非阻塞 异步非阻塞是指请求发出后,就去干别的事情,等到事情处理完之后,服务器会主动通知请求方。
以上是关于同步异步阻塞和非阻塞的主要内容,如果未能解决你的问题,请参考以下文章