【问题标题】:What's the difference between Sequential and Synchronous Execution?顺序执行和同步执行有什么区别?
【发布时间】:2018-06-16 13:21:04
【问题描述】:

如果我理解正确:

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

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

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

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

顺序执行 - 两个任务不能在一个共同的时间段内完成。它们必须按顺序执行。

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

【问题讨论】:

  • 也许这会帮助你理解:softwareengineering.stackexchange.com/a/144483/256197。我看到它的方式是同步代码是阻塞的,顺序代码不必是 - 在您异步运行task1 的情况下,await 其结果,然后开始您的后续任务。这导致顺序但异步执行。请记住,每个任务通常都与一个线程相关。

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


【解决方案1】:

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

伪代码

{

做一个

做B

做C

}

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

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

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

【讨论】:

    猜你喜欢
    • 2017-05-20
    • 1970-01-01
    • 2016-12-02
    • 2012-01-30
    • 1970-01-01
    • 1970-01-01
    • 2018-09-17
    • 2018-07-02
    • 1970-01-01
    相关资源
    最近更新 更多