并发和并行之间的区别是什么?
当前回答
并发:如果一个处理器解决了两个或多个问题。
并行性:如果一个问题由多个处理器解决。
其他回答
这个来源的解释对我很有帮助:
并发性与应用程序如何处理多个任务有关一个应用程序可以一次处理一个任务(按顺序)或同时处理多个任务(同时)。另一方面,并行性与应用程序处理每个单独的任务。应用程序可以处理该任务从开始到结束依次执行,或将任务拆分为子任务可以并行完成。正如您所看到的,应用程序可以是并发的,但不能是并行的。这意味着它同时处理多个任务,但是这些任务不分解为子任务。应用程序也可以是并行的,但不能是并发的。这意味着应用程序一次只能处理一个任务,而此任务被分解为可以并行处理的子任务。此外,应用程序既不能是并发的,也不能是并行的。这意味着它一次只能处理一个任务从未分解为并行执行的子任务。最后,应用程序也可以是并发和并行的,在它可以同时处理多个任务,也可以中断将每个任务分解为子任务以并行执行。然而并发性和并行性的好处可能会因此而丧失由于计算机中的CPU已经处于相当繁忙的状态仅具有并发性或并行性。结合起来可能会导致只有很小的性能增益或甚至性能损失。
同意:具有共享资源潜力的多个执行流
前任:两个线程竞争I/O端口。
视差:将问题分成多个相似的块。
前任:通过对文件的每一半运行两个进程来解析大文件。
并发简单意味着多个任务正在运行(不需要并行)。例如,假设我们在任何时刻都有3个任务:多个任务可能正在运行,或者所有任务可能同时运行。
并行性意味着它们实际上是并行运行的。因此,在这种情况下,三者必须同时运行。
如果你想向一个9岁的孩子解释这一点。
并发与并行
Rob Pike在《并发不是并行性》中
并发是指同时处理许多事情。
并行是指同时做很多事情。
[并发理论]
并发-一次处理多个任务并行性-一次处理多个线程
我对并发性和并行性的看法
[同步与异步][Swift并发]