为什么我们将并行编程称为异步编程

时间:2019-01-01 11:53:37

标签: asynchronous async-await

在英语中,单词 synchronous 表示"happening at the same time",而单词 asynchronous 则相反(即"not simultaneous or concurrent in time : not synchronous"

为什么所有引用都将并行编程称为异步编程而不是同步编程like this one 以及为什么它们都使用关键字async(异步的缩写)而不是同步。

例如:

  • 如果我分别有两个连续的方法Method1()Method2(),则Method2()直到Method1()完成处理(我们称为顺序处理)后才开始执行。
  • 如果Method1()Method2()都标有async关键字,则意味着Method2()将开始处理而无需等待Method1()完成。
  • 因此,我可以将其描述为并行调用,并发调用,同步调用,或表示它们在一起运行而无需等待的任何方式。 / li>
  • 为第二种情况命名为“异步”,给人的印象是它们不是并行处理的。

这是否令人困惑,不是吗?

我不是讲英语的人,我是否缺少英语或并行编程概念的内容?

1 个答案:

答案 0 :(得分:0)

并行编程意味着同时执行活动。今天,使用了两种活动:线程和异步过程(协程是特殊类型的异步过程)。两种活动可以共存于同一程序中。如果大多数或所有活动都是线程,则该程序称为多线程。如果大多数或所有活动都是异步过程,则该程序称为异步。如果程序由单个线程组成,则称为同步。但是最有趣的是,当单个线程正在执行异步过程时(例如,Java / Swing或Android中的GUI线程正在执行),该程序同时是异步的!