如果我理解正确的话:
异步执行 - 一个任务不必等待另一个任务完成
并发执行 - 在同一时间段内执行两个任务(通常通过上下文切换)
但两者的对立面似乎是相同的。
同步执行 - 一个任务必须等待另一个任务完成才能执行
顺序执行 - 不能在同一时间段内执行两项任务。它们必须按顺序执行。
同步执行和顺序执行似乎是同一件事。我错过了什么?
顺序和同步是不同的东西。让我们以下一个伪代码为例:
伪代码
{
做A
做B
做C
}
顺序和同步都会按照 A->B->C 的顺序执行任务。不同之处在于他们做到这一点的方式。
同步可以做到这一点的唯一方法是开始执行任务 A,阻止一切并等待任务完成。之后,它继续执行任务 B。您可以将其想象为在一个线程上执行所有任务。
另一方面,通过顺序执行,我们可以在后台线程 1 上开始执行任务 A。完成后,我们可以开始在主线程(假设线程 2)上执行任务 B。 我们有相同的最终结果,但正如你所看到的,过程是不同的
出于所有意图和目的,尤其是如果您是新手/初级编程,您应该考虑:
顺序、同步、阻塞,这些术语可以互换。
并发、异步、非阻塞,这些术语可以互换。
但是异步和并行根本不是同义词,虽然它们都属于“并发”的总称,但它们是两种不同的实现方式。