關於多線程和多核

來源:互聯網
上載者:User

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

(破csdn,沒發直接黏貼圖片,算了,大家湊合看看結論吧)

運行平台:

 

首先我們來看下面這段代碼:

 

運行這段代碼看一下工作管理員的顯示:

 

很奇怪,處理器佔用率是50%,也就是完全佔用了一個,但是均衡用了兩個核?

——“在雙核(多核)處理器上,一個單線程的負載可能就會在兩個核心上交叉處理,”

 

關閉選項:選擇一個cpu。

注意:這個選項只有在雙核cpu,雙cpu,或者多cpu電腦中顯示。

 

 

結論:一個線程本質上只能在佔用一個核的資源,但是由於雙核補丁的緣故,能讓一個線程均衡在兩個核上運行。

但是一個線程無論怎樣,只能佔用一個核的資源的總量,即使使用了多核,也是交叉使用,讓整體上看來這個線程使用了兩個核的資源。

 

 

 

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

 

 

 

總結:

●一個線程在同一個時刻只能佔用一個核的資源,即使硬體是雙核處理器,也只是交叉使用cpu,讓整體來看是讓一個線程在兩個cpu上運行,但究其本質而言,還是單線程的程式只能佔用一個cpu。

 

●通過多線程則可以實現對多核cpu資源的完全獲得,由於我們的作業系統本來就是多線程的系統,所以雙核的處理器能大大加強作業系統的處理能力,即使你的所有程式都是單進程單線程。

 

●但是就單個一個程式而言,想要在雙核的電腦上完全發揮效能,啟用多線程是最好的辦法,否則整個程式在同一時間永遠只適用一個cpu的資源,即使是多核的電腦也沒法加快單線程程式的運行速度。而使用多線程則可以通過同一時間獲得多個處理器資源從而以並發的形式加快程式的運行速度。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.