我读到没有并发性就可能有并行性。这是对的吗?
假设您有两个任务,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
这可能不是一个好主意,但在概念上似乎是可能的。
答案 0 :(得分:1)
并行计算与并发计算密切相关 - 它们经常一起使用,并且经常混淆,尽管两者截然不同:可能没有并发性的并行性(例如位级并行性)和没有并行性的并发性(例如在单核CPU上通过分时进行多任务处理。在并行计算中,计算任务通常在几个,通常是许多非常相似的子任务中被分解,这些子任务可以在完成时独立地处理并且其结果在之后被组合。相反,在并发计算中,各种过程通常不涉及相关任务;当它们这样做时,就像分布式计算中的典型情况一样,单独的任务可能具有不同的性质,并且在执行期间通常需要一些进程间通信。
使用该解释作为指导我认为您的评估是准确的,但它缺少并发性而没有并发性,这在上面的引文中提到。