如果没有并发性,你怎么能有并行性?

时间:2016-05-22 05:33:42

标签: multithreading concurrency process parallel-processing single-threaded

我读到没有并发性就可能有并行性。这是对的吗?

假设您有两个任务,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

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

1 个答案:

答案 0 :(得分:1)

来自wikipedia

  

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

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