在系统交互时候选择同步还是异步有时候很让人困扰,希望通过阅读这篇文章可以帮助更好的理解同步与异步。

同步与异步消息的区别

1、同步消息

同步消息传递涉及到等待服务器响应消息的客户端。消息可以双向地向两个方向流动。本质上,这意味着同步消息传递是双向通信。即发送方向接收方发送消息,接收方接收此消息并回复发送方。发送者在收到接收者的回复之前不会发送另一条消息。

2、异步消息

异步消息传递涉及不等待来自服务器的消息的客户端。事件用于从服务器触发消息。因此,即使客户机被关闭,消息传递也将成功完成。异步消息传递意味着,它是单向通信的一种方式,而交流的流程是单向的。

如果这还不好理解,那继续往下读...

异步:比如A是字符集第一个字母,唯一可行的方法就是向Z走,这意味着是单向通信。

同步:比如同步是从字母S开始,可能是朝向可能是A或Z,这意味着是双向通信。

同步和异步消息传递的有点和缺点

异步消息传递有一些关键优势。它们能够提供灵活性并提供更高的可用性——系统对信息采取行动的压力较小,或者以某种方式立即做出响应。另外,一个系统被关闭不会影响另一个系统。例如,电子邮件——你可以发送数千封电子邮件给你的朋友,而不需要她回复你。

异步的缺点是它们缺乏直接性。没有直接的相互作用。考虑一下与你的朋友在即时通讯或电话上聊天——除非你的朋友及时回复你,否则这不是聊天或谈话。

异步消息传递允许更多的并行性。由于进程不阻塞,所以它可以在消息传输时进行一些计算。

异步消息传递引入了几个问题。如果消息无法传递会发生什么?如果消息在传输中丢失了怎么办?

与异步消息传递相关的另一个问题与缓冲有关。如果在操作系统管理的空间中对消息进行异步处理,则进程可能会通过大量消息向数据库中写入数据。

哪个更好——同步还是异步?

这个问题没有答案。


如果感到对您有帮助没准儿你就会赞赏,iOS 专用赞赏通道:

转载于:https://www.cnblogs.com/eason-liu/p/8053558.html

[基础]同步消息和异步消息传递的区别?相关推荐

  1. 同步消息和异步消息传递的区别?

    在系统交互时候选择同步还是异步有时候很让人困扰,希望通过阅读这篇文章可以帮助更好的理解同步与异步. 同步与异步消息的区别 1.同步消息 同步消息传递涉及到等待服务器响应消息的客户端.消息可以双向地向两 ...

  2. 同步请求和异步请求的区别

    同步请求和异步请求的区别 先解释一下同步和异步的概念 同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式.   异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据 ...

  3. 同步电路和异步电路的区别

    摘自 何宾著<XilinxFPGA设计权威指南>P86~P91 同步电路和异步电路的区别在于电路触发是否与驱动时钟同步,从行为上讲,就是所有电路是否在同一时钟沿下同步地处理数据. 同步复位 ...

  4. java同步异步区别_同步请求和异步请求的区别

    同步请求和异步请求的区别 先解释一下同步和异步的概念 同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式. 异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的 ...

  5. 同步消息和异步消息的区别

    顺序图是一种详细描述对象之间交互的图,强调消息之间的顺序. 消息是对象之间的通信的规格说明,这样的通信用于传输将发生的活动所需要的信息,既包含了控制(如调用)的规格说明,也包含了所使用的数据的规格说明 ...

  6. Windows同步消息和异步消息的使用

    在Windows中,使用SendMessage来发送同步消息,使用PostMessage来发送异步消息.二者的区别在于:SendMessage将消息发给一个窗口,等窗口程序处理完成后才返回:PostM ...

  7. RocketMQ同步消息、异步消息、单向消息详解

    一.RocketMQ 支持 3 种消息发送方式 : 1.同步消息(sync message ) producer向 broker 发送消息,执行 API 时同步等待, 直到broker 服务器返回发送 ...

  8. RocketMQ 实战-SpringBoot整合RocketMQ同步消息、异步消息、单向消息

    官方样例:https://gitee.com/apache/rocketmq/blob/master/docs/cn/RocketMQ_Example.md 1. 同步消息 producer向 bro ...

  9. UML建模中简单消息、同步消息和异步消息

    简单消息Simple Message 表示简单的控制流,是从一个对象到另一个对象的控制流的转移.用于描述控制如何在对象间进行传递,而不考虑通信的细节. 同步消息Synchronous Message ...

  10. ajax同步请求和异步请求的区别

    刚毕业那会有一位面试官问我的问题,现在想做个总结 jquery 的 async 这个属性 默认是true:异步 , false:同步. 那么异步和同步到底有什么区别呢? 异步:异步处理是客户端通过事件 ...

最新文章

  1. 使用Python、OpenCV进行图像接缝雕刻
  2. 知识图谱要看的书 了解的人 公众的号
  3. Mint系统使用介绍,Mint系统安装,在Mint系统上搭建GPU环境,在Mint系统上安装Pycharm、Anaconda等软件,在Mint系统上安装cuda和cudnn
  4. 武汉理工大学软件质量保证与测试,材料测试技术(武汉理工大材料测试技术(武汉理工大学).pdf...
  5. Qt使用UDp通信、套接字socket的成员函数bind()的作用
  6. Java——去除字符串中的中文
  7. 大学文科计算机考试大纲,(文科)大学计算机信息技术课程考核大纲(文科)介绍.doc...
  8. 充分利用系统的组策略 保障共享目录安全
  9. python---Socket编程
  10. 利用TabWidget实现底部菜单
  11. ./configure --prefix
  12. [推荐]查看Json输出的*最方便*的方法 (转)
  13. 21. 栈的压入、弹出序列
  14. android的log.v,Android Log.v(),Log.d(),Log.i(),Log.w(),Log.e() - 何时使用每一个?
  15. python学了真的很有用吗-python学了真的很有用吗?当然!赶紧学,不学后悔!
  16. 2017-5-5/PHP实现负载均衡的加权轮询
  17. linux下如何在线添加和移除scsi磁盘?
  18. Java实现极光推送
  19. 企业级数据服务总线规划
  20. 失效而后犬儒【2019.05.15报告记录】

热门文章

  1. Java 中的 SPI 机制是到底是什么?高级 Java 必须掌握!
  2. 百度如何使用Go语言重构日请求量千亿级别的系统?
  3. 时隔两年,运维人必备的PuTTY 终于发布新版!
  4. 特殊时期,找工作的 9 点建议!
  5. 推荐一些优质原创公众号
  6. 你若不离不弃,我必拼尽全力!
  7. 敏捷:什么是用户故事(User Story)
  8. 数组:正整数数组分成2组使其和的差的绝对值最小
  9. 【转】Android将Activity打成jar包供第三方调用(解决资源文件不能打包的问题)...
  10. disable NSLog