顺序执行和同步执行有什么区别?

问题描述 投票:0回答:2

如果我理解正确的话:

异步执行 - 一个任务不必等待另一个任务完成

并发执行 - 在同一时间段内执行两个任务(通常通过上下文切换)

但两者的对立面似乎是相同的。

同步执行 - 一个任务必须等待另一个任务完成才能执行

顺序执行 - 不能在同一时间段内执行两项任务。它们必须按顺序执行。

同步执行和顺序执行似乎是同一件事。我错过了什么?

multithreading asynchronous concurrency parallel-processing context-switch
2个回答
1
投票

顺序和同步是不同的东西。让我们以下一个伪代码为例:

伪代码

{

做A

做B

做C

}

顺序和同步都会按照 A->B->C 的顺序执行任务。不同之处在于他们做到这一点的方式。

同步可以做到这一点的唯一方法是开始执行任务 A,阻止一切并等待任务完成。之后,它继续执行任务 B。您可以将其想象为在一个线程上执行所有任务。

另一方面,通过顺序执行,我们可以在后台线程 1 上开始执行任务 A。完成后,我们可以开始在主线程(假设线程 2)上执行任务 B。 我们有相同的最终结果,但正如你所看到的,过程是不同的


0
投票

出于所有意图和目的,尤其是如果您是新手/初级编程,您应该考虑:

顺序、同步、阻塞,这些术语可以互换。

并发、异步、非阻塞,这些术语可以互换。

但是异步和并行根本不是同义词,虽然它们都属于“并发”的总称,但它们是两种不同的实现方式。

© www.soinside.com 2019 - 2024. All rights reserved.