我试图理解同步和异步通信这两个术语但我有点困惑。我试图挖掘this,但仍然存在混淆。我的问题如下:
1.同步和异步通信如何工作?还参考上面提到的用于异步通信的信号是什么。
2.同步和异步过程如何工作?
任何举例说明这都会有所帮助。
如果这是一个非常简单的问题,请道歉。我是编程新手。希望你的答案能帮助我。在此先感谢!!!!
答案 0 :(得分:87)
通过电话呼叫某人是同步。每封邮件与他通信是异步的。
<强>同步强>
当我打电话给你时,我拨打你的电话号码并等待直到你拿起电话。然后你说些什么,在同一时刻我会听你的。完成后,我会向您发送数据(与您交谈),并在您收到数据的同一时间(听我说)。在我们的沟通结束时,我们中的一个人说“转发结束”(再见),另一个说“Acknoledged”(再见)然后两个都响了。
<强>异步强>
我给你写了一封信。我把它放到邮局,它将被发送给你。与此同时,我 NOT WAIT 。我做了很多不同的事情。然后你收到了这封信。你读它的同时我还做了很多不同的事情。然后你给我写了一个答案然后发给我。在所有那些我没有参与的事情中。在第二天,我从系统(邮递员)获得(同步)消息(信号)。它(他)说:“这是给你的信息”。或者,我可以每隔五分钟轮询我的收件箱,检查是否有新信件。然后我暂停我的其他工作,收到你的来信并阅读你的答案。然后我按照这个答案做点什么。但这是你不会注意到的事情,因为你没有参与我对异步答案的处理。答案 1 :(得分:18)
同步您的代码发送消息,调用函数等并被阻止,直到答案,返回值等到达。
异步您的代码在发送消息/调用函数后继续执行,您通常会将答案传递给在答案到达时执行的回调函数(可能在一小时,几天,几年来,你的主要线索还在继续。