同步、异步与阻塞、非阻塞的区别与联系

本文探讨了同步与异步通信机制以及阻塞与非阻塞调用方式,详细解释了同步异步的主要区别和应用场景,并介绍了同步阻塞、同步非阻塞、异步阻塞和异步非阻塞四种组合方式及其效率特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

同步与异步

同步与异步机制是描述通信模式的概念。

同步机制

同步机制是指发送方发送请求后,需要等待接收到接收方返回的响应后才继续发送新的请求。在同步机制中,所有的请求都是同步的,接收方和发送方对请求的处理步调是已知的。

异步机制

异步机制是指发送方发送请求后,不需要等待接收方返回的相应,就可以继续发送新的请求。在异步机制中,来自发送方的请求需要队列进行保存,接收方处理完成后发送响应通知发送方。

阻塞与非阻塞

阻塞与非阻塞是描述进程处理调用的方式,实质上也就是一系列的IO操作。

阻塞

阻塞方式是指在调用结果返回前,当前线程从运行状态被挂起,知道调用结果返回后才进入就绪状态,等待CPU调用后继续执行。

非阻塞

非阻塞方式是指不需要等待调用结果返回,在调用结果不能立即返回时,当前线程不会被挂起,而是立即返回,继续执行下一个调用。

组合

将同步、异步以及阻塞、非阻塞这两个不同阶段的处理方式结合在一起,就会产生同步阻塞、同步非阻塞、异步阻塞以及异步非阻塞四种机制。

同步阻塞

发送方向接收方发送请求后,一直等待接收方的响应;同时接收方在处理请求时,若IO操作的结果不能马上返回,就一直等待返回结果,知道获取到返回结果后才响应发送方。在此期间,发送方和接收方均不能进行其他工作。同步阻塞方式的实现比较简单,但效率低下。

同步非阻塞

发送方向接收方发送请求后,一直等待接收方的响应;而接收方在处理请求时,若IO操作的结果不能马上得到,就立即返回,继续去处理其他工作,但是由于未能得到返回结果,因此不响应发送方,使得发送方一直等待,直至IO操作完成,发送方才能收到接收方的响应。

异步阻塞

发送方向接收方发送请求后,不用等待响应,可以继续其他工作;而接收方在处理请求时,若IO操作的结果不能马上返回,就一直等待返回结果,知道获取到返回结果后才响应发送方。

异步非阻塞

发送方向接收方发送请求后,不用等待响应,可以继续其他工作;同时接收方在处理请求时,若IO操作的结果不能马上得到,就立即返回,继续去处理其他工作,当IO操作完成后,将完成结果和完成状态通知接收方,接收方进而再响应发送方。异步非阻塞方式的实现比较复杂,但效率最高。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值