摘要。本科生或新手程序员经常在编程课程中受到高级和抽象概念的挑战。与构建顺序程序相比,并行和并发编程需要不同的、更复杂的控制流思维模型。现在,多核处理器已成为计算机和移动设备的标准,开发软件以利用这种额外的计算能力的责任现在落在了现代软件开发人员身上。关键词:性能、编程、线程、顺序程序、计算机体系结构。简介本文的目的是通过不仅提供定义和解释,还提供来自现实生活的例子,帮助读者理解什么是并行性和并发性,因为这样会更容易理解。有很多解释,但只有少数能让你对它们有一个很好的认识,其余的都让你感到困惑,然后你放弃理解这两个术语。你甚至不知道你不仅在编程时看到并发和并行性,而且在任何地方、任何时候都看到它。现实生活中的实现想象一下,一个人在图书馆工作,一堆新书到了。他的任务是按作者选择合适的书,然后将它们放到书架上。他完成这项任务的方式是遵循正确的步骤。他会从所有书中挑选出由同一作者写的书。将它们带到相应的位置后,他会将它们排列在书架上。为了使这个过程更有效率,他可以实施并行技术,使用两名工人并让他们同时工作。这样,他将减少两倍的时间。当然,如果他想使这项工作更有效率,他可以使用更多的工人。关于并行性,需要了解的一件重要事情是,有时您无法获得预期的性能提升,因为您可能会遇到瓶颈,这种情况发生在资源(书籍)繁忙且第二名工人无法选择所需书籍时,这就是为什么您可能会浪费与使用一名工人时相同的时间。现在,如果您想更好地优化,可以使用并发方法。因此,在进入这个主题之前,先定义什么是并发,因为很容易将并发与并行混淆,我们必须从一开始就尝试明确两者的区别: - 并行是指同时做很多事情。 - 并发是指同时处理很多事情。 并行 并行意味着在多个硬件(核心、机器等)上执行多个任务,这就是为什么这些任务并行运行并且尽可能快地执行。 并行计算机是一种在协作中使用同时处理元素的计算机或系统