日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

转:认识cpu、核与线程

發布時間:2023/12/3 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 转:认识cpu、核与线程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自: https://www.cnblogs.com/-new/p/7234332.html

?

前言:作為一個后臺開發人員,我想有必要了解這些基礎知識。如果本文有不嚴謹或者疏忽的地方,請指正。

目錄

  • 認識cpu、核心與線程
  • java多線程系列(一)之java多線程技能
  • java多線程系列(二)之對象變量的并發訪問
  • java多線程系列(三)之等待通知機制
  • java多線程系列(四)之ReentrantLock的使用
  • java多線程系列(五)之synchronized ReentrantLock volatile Atomic 原理分析
  • java多線程系列(六)之線程池原理及其使用

cpu與核心

物理核

  • 物理核數量=cpu數(機子上裝的cpu的數量)*每個cpu的核心數

虛擬核

  • 所謂的4核8線程,4核指的是物理核心。通過超線程技術,用一個物理核模擬兩個虛擬核,每個核兩個線程,總數為8線程。
  • 在操作系統看來是8個核,但是實際上是4個物理核。
  • 通過超線程技術可以實現單個物理核實現線程級別的并行計算,但是比不上性能兩個物理核。

單核cpu和多核cpu

  • 都是一個cpu,不同的是每個cpu上的核心數
  • 多核cpu是多個單核cpu的替代方案,多核cpu減小了體積,同時也減少了功耗
  • 一個核心只能同時執行一個線程

進程和線程

理解

  • 進程是操作系統進行資源(包括cpu、內存、磁盤IO等)分配的最小單位
  • 線程是cpu調度和分配的基本單位
  • 我們打開的微信,瀏覽器都是一個進程
  • 進程可能有多個子任務,比如微信要接受消息,發送消息,這些子任務就是線程。
  • 資源分配給進程,線程共享進程資源。

對比

對比進程線程
定義進程是程序運行的一個實體的運行過程,是系統進行資源分配和調配的一個獨立單位線程是進程運行和執行的最小調度單位
系統開銷創建撤銷切換開銷大,資源要重新分配和收回僅保存少量寄存器的內容,開銷小,在進程的地址空間執行代碼
擁有資產資源擁有的基本單位基本上不占資源,僅有不可少的資源(程序計數器,一組寄存器和棧)
調度資源分配的基本單位獨立調度分配的單位
安全性進程間相互獨立,互不影響線程共享一個進程下面的資源,可以互相通信和影響
地址空間系統賦予的獨立的內存地址空間由相關堆棧寄存器和和線程控制表TCB組成,寄存器可被用來存儲線程內的局部變量

線程切換

  • cpu給線程分配時間片(也就是分配給線程的時間),執行完時間片后會切換都另一個線程。
  • 切換之前會保存線程的狀態,下次時間片再給這個線程時才能知道當前狀態。
  • 從保存線程A的狀態再到切換到線程B時,重新加載線程B的狀態的這個過程就叫上下文切換。
  • 而上下切換時會消耗大量的cpu時間。

線程開銷

  • 上下文切換消耗
  • 線程創建和消亡的開銷
  • 線程需要保存維持線程本地棧,會消耗內存

串行,并發與并行

串行

  • 多個任務,執行時一個執行完再執行另一個。
  • 比喻:吃完飯再看球賽。

并發

  • 多個線程在單個核心運行,同一時間一個線程運行,系統不停切換線程,看起來像同時運行,實際上是線程不停切換。
  • 比喻: 一會跑去食廳吃飯,一會跑去客廳看球賽。

并行

  • 每個線程分配給獨立的核心,線程同時運行。
  • 比喻:一邊吃飯一邊看球賽。

多核下線程數量選擇

計算密集型

  • 程序主要為復雜的邏輯判斷和復雜的運算。
  • cpu的利用率高,不用開太多的線程,開太多線程反而會因為線程切換時切換上下文而浪費資源。

IO密集型

  • 程序主要為IO操作,比如磁盤IO(讀取文件)和網絡IO(網絡請求)。
  • 因為IO操作會阻塞線程,cpu利用率不高,可以開多點線程,阻塞時可以切換到其他就緒線程,提高cpu利用率。

總結

  • 提高性能的一種方式:提高硬件水平,處理速度或核心數。
  • 另一種方式:根據場景,合理設置線程數,軟件上提高cpu利用率。

總結

以上是生活随笔為你收集整理的转:认识cpu、核与线程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。