首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >并发、并行和异步方法之间的区别是什么?

并发、并行和异步方法之间的区别是什么?
EN

Stack Overflow用户
提问于 2011-01-31 02:22:48
回答 4查看 87.8K关注 0票数 249

并发是让两个任务在不同的线程上并行运行。然而,异步方法是并行运行的,但在同一个线程上。这是如何实现的?另外,并行性又如何呢?

这三个概念之间有什么区别?

EN

回答 4

Stack Overflow用户

发布于 2014-03-15 03:45:08

每个人都很难将异步与并行或并发联系起来,因为异步并不是并行或并发的反义词。它是同步的反义词。它只是指示某些东西,在这种情况下是线程,是否会与其他东西同步,在这种情况下是另一个线程。

票数 20
EN

Stack Overflow用户

发布于 2019-12-17 16:40:10

“同步和异步是编程模型。并发和并行是执行任务的方式...”。来源:https://medium.com/better-programming/sync-vs-async-vs-concurrent-vs-parallel-5754cdb60f66

换句话说,sync和async描述程序在调用函数时如何执行(它将等待还是继续执行?),而并发和并行描述函数(任务)将如何执行(并发=可能同时执行,并行=同时有效执行)。

票数 7
EN

Stack Overflow用户

发布于 2021-09-13 22:11:53

用类比来解释这些术语。

你的房子需要洗碗和洗衣服。

并发性:您不必等到一个完成后再开始另一个。例如,你可以先开始上菜,也可以同时上菜。它们可以按任何顺序结束,也就是说,即使你先开始洗碗,也可能先洗好衣服。

并行性:房子里不止一个人在做这项工作;举个例子,你可以洗碗,另一个人可以洗衣服。

异步:你让别人洗衣服,然后让别人洗碗。他们实际上可以是同一个人(例如,你告诉他们洗衣服,然后立即告诉他们洗碗)。他们完成每一个任务后都会向你汇报。

同步:你让某人洗碗。你等着他们。当他们完成后,你可以做其他的事情(你可以告诉他们下一步去洗衣服,或者你可以自己做,或者你可以完全做其他的事情;关键是你在第一个任务完成时受阻,你和他们是同步的)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4844637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档