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

Asynchronous 为什么我们把并行编程称为异步编程,asynchronous,async-await,Asynchronous,Async Await,在英语中,单词synchronous表示同步,而单词asynchronous表示相反的意思(即) 为什么所有参考文献都将并行编程称为异步编程而不是同步编程 以及为什么他们都使用关键字async(异步的缩写)而不是sync 例如: 如果我有两个连续的方法,分别是Method1()和Method2(),那么Method2()将不会开始执行,直到Method1()完成处理,我们称之为顺序处理 如果Method1()和Method2()都标记有async关键字,这意味着Method2()将开始处理,而

在英语中,单词synchronous表示同步,而单词asynchronous表示相反的意思(即)

为什么所有参考文献都将并行编程称为异步编程而不是同步编程 以及为什么他们都使用关键字
async
(异步的缩写)而不是sync

例如:

  • 如果我有两个连续的方法,分别是
    Method1()
    Method2()
    ,那么
    Method2()
    将不会开始执行,直到
    Method1()
    完成处理,我们称之为顺序处理
  • 如果
    Method1()
    Method2()
    都标记有
    async
    关键字,这意味着
    Method2()
    将开始处理,而无需等待
    Method1()
    完成
  • 因此,我可以将其描述为并行调用、并发调用、同步调用,或者任何表示它们在不等待的情况下一起运行的东西
  • 将第二个场景命名为异步会给人一种印象,即它们不是并行处理的
这很令人困惑,不是吗


我不是以英语为母语的人,我是否在英语或并行编程概念中遗漏了一些东西?

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

在这里,异步意味着没有同步性,即启动一个操作,然后异步进行。在并行编程(或多线程)中,线程彼此独立执行,可能在完全不同的时间完成它们的任务。它们不同步或彼此不同步,因此它们是异步的。同步在本上下文中的使用方式与异步不同。异步在本例中所指的“时间上不同步或并发”并不是指独立的任务,这些任务实际上可能是并发执行的。它指的是异步子例程与其调用者之间的关系:子例程的结果与调用它的代码“不同时或并发”。我们没有!您可以使用不并行运行的异步代码。此链接清楚地讨论了:这更令人困惑:),请检查我添加到问题中的示例,以澄清我最初困惑的来源并行并不意味着并行,正如并发并不意味着并行。@PauloMorgado其他人说“并行意味着并发”:它们是错误的。并发意味着在“相同”的时间访问相同的资源。不访问相同资源的代码可以在没有并发的情况下并行运行。而访问相同资源的代码可以异常并发地运行。