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

时间:2018-01-07 08:16:16

标签: multithreading asynchronous concurrency parallel-processing context-switch

如果我理解正确的话:

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

并发执行 - 在一个公共时间段内(通常通过上下文切换)正在处理两项任务

但两者的对立面看起来都是一样的。

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

顺序执行 - 在公共时间段内无法处理两项任务。它们必须按顺序执行。

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

1 个答案:

答案 0 :(得分:0)

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

伪代码

{

做一个

做B

做C

}

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

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

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