21

我试图理解同步和异步通信这两个术语,但我有点困惑。我试图对此进行深入研究,但仍然存在困惑。我的问题如下:

1.同步和异步通信是如何工作的?还要参考上面提到的异步通信使用的信号有哪些。

2.同步和异步流程是如何工作的?

任何说明这一点的例子都会有所帮助。

抱歉,这是一个非常简单的问题。我是编程新手。希望你的回答对我有帮助。提前致谢!!!!

4

2 回答 2

99

打电话给某人是同步的。通过邮件与他通信是异步的。


同步

当我打电话给你时,我会拨你的号码,然后你接电话。然后你说点什么,同时我也听你的。完成后,我会向您发送数据(与您交谈),同时您会收到它们(听我说)。在我们的通信结束时,我们中的一个人说“END OF TRANSMISSION”(再见),另一个人说“Acknoledged”(再见),然后双方都挂断了电话。


异步

我给你写信。我把它放到邮局,它会寄给你的。我同时我不等待。我做很多不同的事情。然后你会收到这封信。当我还在做许多不同的事情时,你读了它。然后你给我写一个答案并发给我。所有这些事情我都没有参与。第二天,我从系统(邮递员)收到一条(同步)消息(信号)。它(他)说:“这是给你的信息”。或者,我可以每五分钟轮询一次收件箱,检查是否有新信。然后我暂停我的其他工作,收到您的来信并阅读您的答复。然后我根据这个答案做一些事情。但这是您不会注意到的事情,因为您没有参与我对您的异步答案所做的事情。

于 2012-04-11T08:52:53.850 回答
18

同步您的代码发送消息、调用函数等并被阻塞,直到答案、返回值等到达。

异步您的代码在发送消息/调用函数后继续执行,您通常将引用传递给在答案到达时执行的回调函数(可能在一小时,几天,几年内发生),同时您的主线程继续.

于 2012-04-11T08:51:11.620 回答