你真的懂CPU多核多线程吗

程序员小迷 2024-04-26 16:16:08

一.多核心:

单芯片多处理器( Chip Multiprocessors,简称CMP)是由美国斯坦福大学提出的,其思想是将大规模并行处理器中的SMP(对称多处理器)集成到同一芯片内,各个处理器并行执行不同的进程。这种依靠多个CPU同时并行地运行程序是实现超高速计算的一个重要方向,称为并行处理。

多核心是指物理上的多个独立CPU核心被集成在单个处理器上。

每个核心都可以独立地执行指令和处理数据。这意味着处理器可以同时处理多个任务,从而提高整体性能。

例如,一个8核处理器意味着它内部有8个独立的计算核心,可以同时执行8个线程或任务。若存在CPU多线程技术,则可以同时执行更多的线程或任务。

多核心CPU特别适合于多任务处理和需要大量并行计算的应用,如视频编辑、3D渲染、科学计算等。

二.多线程:

指的是一个处理器核心能够在同一时间执行两个或更多的线程。

在多核心处理器中,每个核心都可以独立地执行线程。

多线程分为两种类型:

1.Simultaneous MultiThreading:简称SMT。SMT可通过复制处理器上的结构状态,让同一个处理器上的多个线程同步执行并共享处理器的执行资源,最大限度地实现宽发射、乱序的超标量处理(通过并行执行多条指令以及灵活地调度指令的执行顺序),提高处理器运算部件的利用率,缓和由于数据相关或 Cache未命中带来的访问内存延时。

2.超线程技术(Hyper-Threading, HT):Intel引入超线程技术后,允许一个物理核心同时处理2个逻辑线程,使核心数与线程数形成1:2的关系,提高了系统的整体处理性能。

三.CPU核心数和线程数的关系:

目前主流CPU有双核、三核、四核、六核、八核、十六核等,六核在2010年发布。

每个核心可以处理一定数量的线程数。

增加核心数目就是为了增加线程数,因为操作系统是通过线程来执行任务的。

一个CPU的性能不仅取决于核心数量,还取决于每个核心能够处理的线程数量以及这些线程如何被调度和执行。

微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是程序员小迷(致力于C、C++、Java、Kotlin、Android、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

欢迎关注。助您在编程路上越走越好!

1 阅读:1510
评论列表
  • 4代U上试过,Java写的多线程,效率是提高了,但更像是抢占CPU片,而不是多核。C++多线程不好写。现在换电脑了,13代了,有意思的问题,准备下个21的jdk,试试多线程真假。

程序员小迷

简介:致力于Android、iOS、C、Java等编程技术的技巧经验分享