我试图理解同步和异步通信的术语,但我有些困惑。我尝试在这里深入了解,但仍然有些疑惑。我的问题如下:
1.同步和异步通信是如何工作的?还涉及上述异步通信使用的信号。
2.同步和异步过程是如何工作的?
任何举例说明都将有所帮助。
如果这是一个非常简单的问题,我表示歉意,我是编程新手。希望您的答案能帮助我。谢谢!
我试图理解同步和异步通信的术语,但我有些困惑。我尝试在这里深入了解,但仍然有些疑惑。我的问题如下:
1.同步和异步通信是如何工作的?还涉及上述异步通信使用的信号。
2.同步和异步过程是如何工作的?
任何举例说明都将有所帮助。
如果这是一个非常简单的问题,我表示歉意,我是编程新手。希望您的答案能帮助我。谢谢!
电话联系是同步的。通过邮件与他人交流是异步的。
同步
当我给你打电话时,我拨打你的号码并等待直到你接听。然后你说话,在那一瞬间我就可以听到你的声音。当你讲完后,我向你发送数据(与你交谈),在同一时间,你也能接收到这些数据(听我说话)。在我们通信结束时,其中一个人会说“传输结束”(再见),另一个人则回答“已确认”(再见),然后我们都挂断电话。
异步
我写了一封信给你。我把它放到邮局里,然后它就被发送给了你。在此期间,我不需要等待。我可以做许多其他的事情。然后你收到了这封信。你读信的时候,我还在忙其他的事情。然后你回信给我并将其发送给我。在这些事情中,我并没有参与其中。第二天我会从系统(邮递员)获得一条(同步的)消息(信号)。它(他)会说:“这里有一条信息给你”。或者我可以每五分钟轮询我的收件箱,以检查是否有新的信件。然后我暂停其他工作,接收你的信并阅读你的回复。然后我会根据这个答案做出一些事情。但这些是你不会注意到的事情,因为你不知道我在做什么。
同步(synchronous) 指在你的代码发送消息、调用函数等操作时,会一直阻塞直到接收到回复、返回值等。
异步(asynchronous) 指在你的代码发送消息、调用函数等操作后,会继续执行,通常会传递一个回调函数的引用,在答案到达时执行该函数(这可能需要一小时、几天或数年),而你的主线程在此期间将继续执行。