你真的懂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 阅读:931

程序員小迷

簡介:致力于Android、C等編程技術的技巧經驗分享