消息收发的同步机制与异步机制

消息发送与接收,存在同步机制与异步机制。

同步机制

消息发送与消息接收存在先后关系,例如先执行消息发送,发送结束后,紧接着就会堵塞当前自身的进程,不与其他应用进行任何的通信以及交互,等待接收程序的响应,待发送消息得到接收程序的返回消息之后会继续向下运行,进行下一步的业务处理。

试用场景:请求数据查询

  1. 组织数据查询请求这帧消息
  2. 将请求消息进行发送
  3. 发送完毕后,立即进入消息接收状态,在里面循环等待,直到等到请求响应帧,将响应的数据返回。或者没有等到响应帧,可以设置一个超时时间,超过超时时间后,返回请求失败。

异步机制

消息发送和消息接收没有先后关系,相互独立,接收和发送可以同时进行。

试用场景:qq聊天

  1. 消息发送和消息接收相互独立,无需等待。
  2. 可以持续发送也可以持续接收。
  3. 可以边发送边接收

异步机制是否可以取代同步机制?

虽然异步机制优点颇多,但是其无法取代同步机制,有些场合适用同步机制却不适用异步机制。例如:

数据查询,需要及时获取结果,然后用此结果去执行其他操作。来看看同步机制与异步机制处理此问题的区别:

  1. 异步机制中,消息发送和接收是相互独立的,不一定在同一线程中,且需要在接收线程中才能得到查询结果,这样获取的结果需要花功夫搬运到查询的地方,很麻烦。
  2. 同步机制可以完美解决此问题,发送完查询请求后,阻塞,就地等待查询结果,拿结果就地解决问题,无需像同步机制一样将结果从接收线程中搬运过来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汤梦飞123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值