并发和并行的区别_多核、多处理器、并发、并行、超线程概念总结

多核与多处理器

多核(

多核处理器就是指单个 CPU 中有多个可执行单元。

如下图所示,单个 CPU 中有两套可执行单元。

cae9846f231ade3e1b7fea85bd1cffcb.png
多处理器(

多处理器系统则是一个拥有多个 CPU 的系统。每个 CPU 中也可能有多个核。

如下图所示,一个系统中拥有

个处理器,即
个CPU。

59c66b3421e016a2005c94abb92a1aa8.png

并发与并行

并发(

并发执行的定义是,多个程序在一段重叠的时间段中开始、运行与结束,但这些程序并没有在任何一个时刻同时在执行。如下图的左半部分图片所示,同一时刻只有一个程序在执行。

因此我们常听到的 "两个任务或两个程序" 并发执行这样的说法,并不意味着这两个程序在某个时刻同时执行。

并行(

并行执行,则意味着在同一个时刻,存在两个以上任务在同时运行。如下图的右半部分所示,同一时刻有多个任务在同时执行。

其实可以把并行理解为平行,避免与并发概念发生混淆。

这里需要注意,并发执行的关键点在于多个程序在一段时间内同时执行,但并行执行的关键点在于多个任务在同一时刻点同时执行。

e911122ec243a9510f4b4f7c38d76858.png


接下来我们再仔细探讨一下并发与并行之间更深刻的关系。

并行,但不并发

如果一个系统仅支持平行,不支持并发,则意味着必须执行完程序

才能执行程序
,但执行程序
时,其中的各个子任务可以在同一时刻同时执行。
并发,但不并行

并发但不并行,则意味着执行程序

时,可以突然中断执行程序
转去执行程序
,执行完程序
后再去执行
并发且并发

并发且并行意味着执行程序

时不仅可以互相打断,还可以在同一时刻同时执行程序

超线程技术

超线程技术概念
  • 超线程技术(
    )是
    公司提出的一种提高 CPU 性能的技术,可将一个物理 CPU 当作两个逻辑 CPU 使用,同时执行多个线程,从而提高效率。
  • 超线程处理器内部的两个逻辑处理器共享一组处理器执行单元,运算能力提高 30%。
  • 超线程技术可将处理器内部的闲置资源利用起来,当并行执行两个线程时,负责处理第二个线程的逻辑处理器,仅使用运行第一个线程的处理器不使用的资源。
超线程技术执行单线程

执行单个线程时,超线程技术的效果反而下降。

因为打开超线程后,处理器内部缓存被划分为几个区域,互相共享内部资源,单个子系统性能反而下降。

为了更好地说明超线程技术的特性,我们将双核处理器与支持超线程技术的单核处理器进行对比。

双核处理器概念

双核处理器是在一个处理器芯片上集成了两个 “物理的” 运算核心。

超线程单核处理器与双核处理器的区别
  • 开启了超线程技术的单核处理器与双核处理器在操作系统中都被识别为两个处理器,二者的区别在于,前者是两个 “逻辑” 处理器,后者是两个 “物理” 处理器。
  • 超线程的逻辑处理器并没有独立的执行单元、整数单元、寄存器甚至缓存,它们在运行时仍需要共用执行单元、缓存和总线接口。
  • 执行多线程时,超线程的两个处理器交替工作,当争用某资源时,一个线程必须暂停并让出资源。

参考资料

  1. multicore-and-multiprocessor
  2. concurrency-and-parallelism-1
  3. concurrency-and-parallelism-2
  4. Hyper-threading-1
  5. Hyper-threading-2
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值