同步和异步通信是如何工作的
Posted
技术标签:
【中文标题】同步和异步通信是如何工作的【英文标题】:How does Synchronous and Asynchronous communication work exactly 【发布时间】:2012-04-23 13:26:06 【问题描述】:我试图理解同步和异步通信这两个术语,但我有点困惑。我试图深入了解this,但仍然存在困惑。我的问题如下:
1.?还要参考上面提到的异步通信使用的信号有哪些。
2.同步和异步过程是如何工作的?
任何说明这一点的例子都会有所帮助。
如果这是一个非常简单的问题,我们深表歉意。我是编程新手。希望你的回答对我有帮助。提前致谢!!!!
【问题讨论】:
【参考方案1】:打电话给某人是同步的。通过邮件与他通信是异步的。
同步
当我给你打电话时,我会拨你的号码并等待,直到你接电话。然后你说点什么,同时我也听你的。完成后,我会向您发送数据(与您交谈),同时您会收到它们(听我说)。在我们的通信结束时,我们中的一个人说“END OF TRANSMISSION”(再见),另一个人说“Acknoledged”(再见),然后双方都挂断了电话。
异步
我给你写信。我把它放到邮局,它会寄给你的。同时,我不等待。我做很多不同的事情。然后你会收到这封信。当我还在做许多不同的事情时,你读了它。然后你给我写一个答案并发给我。所有这些事情我都没有参与。第二天,我从系统(邮递员)收到一条(同步)消息(信号)。它(他)说:“这是给你的信息”。或者,我可以每五分钟轮询一次收件箱,检查是否有新信。然后我暂停我的其他工作,收到您的来信并阅读您的答复。然后我根据这个答案做一些事情。但这是您不会注意到的事情,因为您没有参与我对您的异步答案所做的事情。
【讨论】:
谢谢你,真的帮助我理解了区别以及使用哪一个 其实我觉得这个答案是针对面向连接和无连接通信的 我喜欢这个类比,但是在异步模式下,如果有很长的字符串,我怎么知道你的 'A' 和 'B' 之间的区别。更具体地说,如果我以 9600 波特的速率传输每个位应该持续大约 104us,但不完全是。如果我继续以 104us 采样,我最终不会变得不同步吗?我是否使用 STOP 和 START 位来重置我的计时器? @Lpaulson:这与问题无关。您正在谈论以给定频率同步二进制数据。但问题是关于在计算机语言中调用方法和函数。信息的编码和发送方式与同步/异步通信无关。打电话和写信函不仅仅是类比。它们确实是这类交流的例子。打电话给某人是同步通信,但没有需要同步的位。 很好的解释:)【参考方案2】:同步您的代码发送消息、调用函数等并被阻塞,直到得到答案、返回值等。
异步您的代码在发送消息/调用函数后继续执行,您通常将引用传递给在答案到达时执行的回调函数(可能在一小时、几天内发生,年),您的主线程在此期间继续。
【讨论】:
以上是关于同步和异步通信是如何工作的的主要内容,如果未能解决你的问题,请参考以下文章