异步执行和同步执行之间的区别是什么?


当前回答

你混淆了同步与并联与串联。同步的意思是同时发生所有的事情。同步的意思是彼此相关,可以是串联的,也可以是固定间隔的。当程序在做所有的事情时,它是串联运行的。找本字典……这就是为什么我们有不甜的茶。你有茶或甜茶。

其他回答

同步操作在返回调用方之前完成其工作。

异步操作在返回调用方之后完成(大部分或全部)工作。

简单来说:

同步

你在排队买电影票。在你前面的每个人都买到之前,你不可能买到,在你后面排队的人也一样。

异步

你和很多人在一家餐馆里。你点餐。其他人也可以点他们的食物,他们不需要等你的食物煮好并端上来才可以点餐。 餐厅的工作人员在厨房里不停地做饭、上菜、接单。 人们的食物一做好就会端上来。

同步的不同英文定义在这里

协调;结合。

我认为这比“同时发生”的定义更好。这也是一个定义,但我不认为它适合计算机科学中使用的方式。

因此异步任务不与其他任务协同,而同步任务与其他任务协同,因此一个任务在另一个任务开始之前完成。

如何实现这一点是另一个问题。

是的,同步的意思是同时,从字面上看,它的意思是一起做功。世界上的多个人/物体可以同时做多件事,但如果我们看看计算机,它说同步意味着进程一起工作,意味着进程依赖于另一个的返回,这就是为什么它们以适当的顺序一个接一个地执行。异步意味着进程不能一起工作,它们可以同时工作(如果在多线程上),但是独立工作。

类比简单解释

(故事和图片帮助你记住)。

同步执行

我老板是个大忙人。他让我写代码。我告诉他:好吧。我一开始,他就像秃鹰一样盯着我,站在我身后,躲在我肩上。我说:“伙计,你干嘛不去做点什么,我把这个做完?”

他会说:“不,我就在这儿等你做完。”这是同步的。

异步执行

老板让我去做这件事,而不是在那里等我的工作,老板离开去做其他的事情。当我完成我的工作时,我简单地向我的老板报告并说:“我完成了!”这就是异步执行。

(听我的建议:永远不要在老板背后工作。)