并发和多线程之间的区别是什么?并发只能在多核cpu中实现吗?任何人都可以用一个例子来解释它吗?
答案 0 :(得分:3)
并发和多线程之间的区别是什么?
并发描述了进程运行的方式。它们是顺序的(一个接一个),并发的(能够同时“进行”,但不一定在同一时刻)或并行(它们同时发生)。
多线程是一种分配各个执行线程的技术;它们本质上是轻量级进程,与父进程共享资源相比具有一些优势。
如果密切关注,可以在并发和非并发系统上进行多线程处理。线程是一个轻量级的进程(关于进程);因此,在非并发系统上拥有多个线程不会导致并行编程。他们仍然会开始运行直到完成另一个。在并发系统上,他们每个都会在CPU时间内获得公平的份额;他们将所有同时进行 。
并发只能在多核cpu中使用吗?
我想我们现在知道了,答案是否定的。并发执行流程是理所当然的,因为它被广泛误解为并行性;一个更强大的工具。
举一个提供一些见解的例子,考虑一下你的机器。它始终做各种各样的事情,你不(希望)经历任何性能滞后。所有这些进程同时运行,即使在单个核心机器上也能让用户感受到并行性(我知道因为我老了:))。
但合并排序怎么样?我们不能在数据的两半上同时执行两个合并排序;是。但只有我们有多个核心/ CPU。
答案 1 :(得分:0)
并发意味着同时执行多个任务。这意味着多个任务并行运行。因此,无论是并行运行多个任务,您都需要多个线程。
所以通过多线程实现并发
现在回答你的问题:
并发只能在多核cpu中使用吗?
答案是否。
如果我有2个线程且只有1个核心。在这种情况下,CPU将为每个线程提供时间来完成其任务。因此,在单核CPU中甚至可以实现多线程。