在系统交互时候选择同步还是异步有时候很让人困扰,希望通过阅读这篇文章可以帮助更好的理解同步与异步。
同步与异步消息的区别
1、同步消息
同步消息传递涉及到等待服务器响应消息的客户端。消息可以双向地向两个方向流动。本质上,这意味着同步消息传递是双向通信。即发送方向接收方发送消息,接收方接收此消息并回复发送方。发送者在收到接收者的回复之前不会发送另一条消息。
2、异步消息
异步消息传递涉及不等待来自服务器的消息的客户端。事件用于从服务器触发消息。因此,即使客户机被关闭,消息传递也将成功完成。异步消息传递意味着,它是单向通信的一种方式,而交流的流程是单向的。
如果这还不好理解,那继续往下读...
异步:比如A是字符集第一个字母,唯一可行的方法就是向Z走,这意味着是单向通信。
同步:比如同步是从字母S开始,可能是朝向可能是A或Z,这意味着是双向通信。
同步和异步消息传递的有点和缺点
异步消息传递有一些关键优势。它们能够提供灵活性并提供更高的可用性——系统对信息采取行动的压力较小,或者以某种方式立即做出响应。另外,一个系统被关闭不会影响另一个系统。例如,电子邮件——你可以发送数千封电子邮件给你的朋友,而不需要她回复你。
异步的缺点是它们缺乏直接性。没有直接的相互作用。考虑一下与你的朋友在即时通讯或电话上聊天——除非你的朋友及时回复你,否则这不是聊天或谈话。
异步消息传递允许更多的并行性。由于进程不阻塞,所以它可以在消息传输时进行一些计算。
异步消息传递引入了几个问题。如果消息无法传递会发生什么?如果消息在传输中丢失了怎么办?
与异步消息传递相关的另一个问题与缓冲有关。如果在操作系统管理的空间中对消息进行异步处理,则进程可能会通过大量消息向数据库中写入数据。
哪个更好——同步还是异步?
这个问题没有答案。
如果感到对您有帮助没准儿你就会赞赏,iOS 专用赞赏通道: