3

我读到可以在没有并发的情况下实现并行性。这个对吗?

假设您有两个任务 A 和 B,每个任务都需要两个步骤才能完成:A1、A2、B1、B2。此外,进程由线程组成。

在这里,我如何看待并发和并行性:

顺序的

          Time ----->
Thread 1: A1 A2 B1 B2

同时

          Time ----->
Thread 1: A1    A2  
Thread 2:    B1    B2

并行(和并发)

          Time ----->
Thread 1: A1 A2
Thread 2: B1 B2

如果这是正确的,那么没有并发性就不可能有并行性。

此外,如果这个模型是正确的,你可以有以下:

顺序(和并发)

          Time ----->
Thread 1: A1    B1  
Thread 2:    A2    B2

这可能不是一个好主意,但在概念上似乎是可能的。

4

1 回答 1

2

来自维基百科

并行计算与并发计算密切相关——它们经常一起使用,并且经常混为一谈,尽管两者是不同的:可以有没有并发的并行(例如位级并行)和没有并行的并发(例如多任务)通过在单核 CPU 上分时)。在并行计算中,一个计算任务通常被分解为几个(通常是许多)非常相似的子任务,这些子任务可以独立处理,然后在完成后将其结果组合起来。相比之下,在并发计算中,各个进程往往不处理相关的任务;当它们这样做时,就像分布式计算中的典型情况一样,单独的任务可能具有不同的性质,并且在执行期间通常需要一些进程间通信。

使用该解释作为指导,我认为您的评估是准确的,但它缺少没有并发的并行性,这在上面的引用中提到。

于 2016-05-22T05:52:49.987 回答