關於多執行緒和多核

2021-04-27 00:29:59 字數 918 閱讀 7747

上一次上嵌入式c語言的課,因為「太過活躍」導致獲得了乙個調研執行緒和多核的任務,呵呵。黃少珉老師都發話了,別人考試時安裝平時成績和最後期末考試兩部分為基準;我是三部分,多乙個這個的調研。今天下午花了點時間,在網上搜了點資料然後自己做了點實驗,簡單報告如下:

執行平台:

首先我們來看下面這段**:

執行這段**看一下任務管理器的顯示:

很奇怪,處理器佔用率是

50%,也就是完全占用了乙個,但是均衡用了兩個核?

——「在雙核(多核)處理器上,乙個單執行緒的負載可能就會在兩個核心上交叉處理,」

關閉選項:選擇乙個

cpu。

注意:這個選項只有在雙核

cpu,雙

cpu,或者多

cpu電腦中顯示。

結論:乙個執行緒本質上只能在占用乙個核的資源,但是由於雙核補丁的緣故,能讓乙個執行緒均衡在兩個核上執行。

但是乙個執行緒無論怎樣,只能占用乙個核的資源的總量,即使使用了多核,也是交叉使用,讓整體上看來這個執行緒使用了兩個核的資源。

下面我們看如何讓兩個核全部佔滿:

總結:●乙個執行緒在同乙個時刻只能占用乙個核的資源,即使硬體是雙核處理器,也只是交叉使用

cpu,讓整體來看是讓乙個執行緒在兩個

cpu上執行,但究其本質而言,還是單執行緒的程式只能占用乙個

cpu。

●通過多執行緒則可以實現對多核

cpu資源的完全獲得,由於我們的作業系統本來就是多執行緒的系統,所以雙核的處理器能大大加強作業系統的處理能力,即使你的所有程式都是單程序單執行緒。

●但是就單個乙個程式而言,想要在雙核的電腦上完全發揮效能,啟用多執行緒是最好的辦法,否則整個程式在同一時間永遠只適用乙個

cpu的資源,即使是多核的電腦也沒法加快單執行緒程式的執行速度。而使用多執行緒則可以通過同一時間獲得多個處理器資源從而以併發的形式加快程式的執行速度。

單核 多核 多執行緒

1 鎖競爭 單核中,如果單個執行緒取得所,則獲取cpu執行時間,其他等待獲取鎖的執行緒被阻塞。使用了鎖,影響的只是枷鎖和解鎖的耗時,cpu始終執行。多核中,若2個 更多 執行緒使用同一把鎖,則會導致cpu飢餓。實際還是序列化執行!2 執行緒分解和執行的區別 對單核cpu,對客戶端軟體,採用多執行緒,...

關於處理器的多核多執行緒

cpu的多核是指cpu的處理器核心數量 cpu的多執行緒是指同乙個處理器上的多個執行緒同步執行並共享處理器的執行資源的執行緒數量 處理器核心 core 又稱為核心,是cpu最重要的組成部分。cpu中心那塊隆起的晶元就是核心,是由單晶矽以一定的生產工藝製造出來的,cpu所有的計算 接受 儲存命令 處理...

鐵路與多核多執行緒

鐵路與多核多執行緒 楊小華多核多執行緒已經成為當前乙個時髦的話題,早在2005年c 大師herb sutter就說過免費的午餐已經結束,併發程式設計的時代已經來臨。從接觸第乙個多執行緒專案以來,已經是第三個年頭了,一直想把這幾年的點點滴滴寫成文章,讓剛接觸的人少走彎路,這便是我寫這篇系列文章的初衷。...