同步与异步 阻塞与非阻塞

博客介绍了同步与异步、阻塞与非阻塞的区别。同步需等待请求返回再发下一个,可避免死锁等;异步不等待返回可随时发新请求,能提高效率。阻塞是等待CPU处理完成再执行后续操作,非阻塞则继续处理后续操作并轮询结果。还通过书店查询书籍的例子进行说明。

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

同步与异步的区别

同步:发送一个请求,等待返回,再发送下一个请求,同步可以避免出现死锁,脏读的发生。
异步:发送一个请求,不等待返回,随时可以再发送下一个请求,可以提供效率,保证并发。

同步与异步关注的是消息通信机制

举个例子
你打电话问书店老板有没有《分布式架构》这本书,如果是同步通信机制,书店老板会说,你稍等,我查一下,然后开始查啊查,等查好了(可能是5秒,也可能是一天)告诉你结果(返回结果)。
而异步通信机制,书店老板直接告诉你,我查一下啊,查好了打电话给你,然后直接挂电话(不返回结果)。然后查好了,他会主动打电话给你。在这里老板通过“回电话”这种方式来回调。


阻塞与非阻塞的区别

阻塞:进程给CPU传达一个任务之后,一直等待cpu处理完成,然后才执行后面的操作。
非阻塞:进程给CPU传达任务后,继续处理后续的操作,隔断时间再来询问之前的操作是否完成。这样的过程其实也叫轮询。

阻塞和非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态

举个例子
你打电话问书店老板有没有《分布式架构》这本书,如果是阻塞式调用,你会一直把自己“挂起”,直到得到这本书有没有的结果。
如果是非阻塞式调用,你不管老板有没有告诉你,你自己先一边去玩了,当然你也要偶尔过几分钟check一下老板有没有返回结果

细细品读一下这两个例子,在不明白一个概念之前,我们可以通过通俗的例子去理解。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值