而CPU上最關鍵的參數想必就是核心數了,我們經常會聽到四核心處理器八核心處理器等等,另外還會看到是四核心四線程,四核心八線程等等,那么這里的核心數為什么
有的一樣有的又不一樣呢?有什么關聯呢?
其實核心數比較好理解,就相當于是CPU能夠同時處理幾項任務,如果把CPU集群比作是一間工廠的話,那么核心數就相當于這間工廠里面的生產線,擁有幾個核心,就能夠幾條生產線同時運作。
而線程數則相當于每條生產線能夠同時做幾項任務,有的生產線智能同時做一件事,而有的生產線能夠同時生產兩件東西,所以這就有了有的是四核心四線程有的則是四核心八線程了。
想了解更多精彩內容,快來關注小謙吧。
多人對CPU的認知僅僅停留在i3/i5/i7上,對型號、版本、核心數和線程一無所知。而作為計算機的的"大腦",CPU的重要性不容忽視。今天就教大家如何看懂CPU型號。
CPU主要分為Intel和AMD兩個品牌,下面分別給大家講一講。
01
Intel的處理器至強Xeon、酷睿Core、賽揚Celeron、
奔騰Pentium和凌動Atom5個系列,而至強是用于服務器端
目前市場上最常見的是酷睿。
02
酷睿i3/i5/i7/i9只是CPU的等級
i3表示入門,i5代表示主流,i7表示高端
03
CPU等級后面跟著的4位數加字母
是表示CPU的代數和版本
如i5-4210U:4形容的是四代i5處理器
U形容的是低電壓
U的版本一般用于筆記本
01
AMD處理器分為銳龍Ryzen、
銳龍Ryzen Pro、銳龍線程撕裂者Ryzen Threadripper、
霄龍EPYC,其中霄龍是服務器端的CPU
最常見的是銳龍
02
銳龍同樣有3/5/7的等級區分
數字的第一位代表處理器是第幾代
比如1700X就是一代,2700X就是二代
03
代數后的三位數字指的是SKU型號
數字越大性能越好
如Ryzen 5有600/500/400
600的性能要強于500。
04
AMD的后綴較少,主要如下:
看到這里,你應該學會了基本的看CPU型號的方法了吧?
以后也能在別人面前介紹CPU型號了哦!
謝你的觀看~
今天是我自學Java的第30天。
你的觀看便是對我最大的鼓勵。?
話不多說,開始今天的學習:
很早的時候,就學習過死循環。
現在思考一個問題,如何運行兩個死循環?
用開發工具寫下代碼,會發現編譯會報錯:
unreachable:不可能達到的。
statement:語句。
不可能達到的語句,為什么會這樣呢?
其實很好理解,第一個while循環是死循環,如果我們不強行將程序停止的話,它是會無止境的永遠運行下去的,那么第二個死循環語句根本就沒法運行到。
所以開發工具會覺得你這條語句沒有意義從而報錯。
那如何解決這個問題呢?
就要引出我們今天的重點:線程。
線程,這個概念太重要的,據說面試基本都會問到和其相關的問題。
提到線程往往會想到另一個概念:進程。
什么叫進程呢?
我們打開電腦任務管理器,就能看到進程。
進程:指一個內存中運行的應用程序,一個應用程序可以同時運行多個進程。
那什么又叫線程呢?
線程:進程內部的一個獨立執行單元,一個進程可以同時并發的運行多個線程。
這種官方定義理解起來有點抽象,做個簡單的比喻:
線程在進程下行進(車廂無法運行,它需要依賴火車)
一個進程可以包含多個線程(一輛火車可以有多個車廂)
線程消耗的資源比進程小的多(多個車廂比多列火車消耗資源少的多)
明白了線程與進程,我們還要了解下電腦cpu它是如何工作的?下圖為一臺筆記本電腦的性能圖:
這臺筆記本是:四核八線程,8邏輯處理器就是指8線程。
意思就是說這臺筆記本電腦能在同一時間內同時執行8個線程,就相當于這臺筆記本的cpu有8個人在幫它工作。
這又要引出兩個概念:并行與并發。
所以上圖中,并行是8個,并發是3102個。
并行8個
因為電腦是四核八線程,有8個邏輯處理器,所以能同時執行8個線程。
并發3102個
因為電腦當前有3102個線程要處理,cpu一次只能執行8個線程,但是cpu太快太快了,它一個線程可能只要幾毫秒,就迅速切換到下一個,人眼根本就反應不過來,所以感覺同時在發生。
并發并不是同時發生,而是CPU速度太快,感覺在同時發生。
所以阿里巴巴為何這么牛?看看雙十一就知道了,雙十一0點那一秒光訂單量就有幾十萬,并發量是非常高的。
在這種高并發的情況下能保證程序不崩是需要一定的技術的。
我還記得周杰倫有次在QQ音樂發布專輯時,QQ音樂就崩了;最近好像網易云音樂也因為誰發布專輯崩了一次。就是因為并發量太高了,服務器處理不過來了。
我們有的時候玩單機游戲會感覺到明顯的卡頓,單機游戲與網絡無關,它為什么有時候會卡呢?
就是因為cpu“忙不過來了”,它還在處理其他的線程,單機游戲就沒來得及處理,便有了卡頓。
所以面對這個問題有一個應急的土方法:
將游戲的線程優先級設置成最高,可以在一定程度上緩解卡頓。
當然這種方法治標不治本,不能從根本上解決這個問題,想根本上解決還是得提高配置或者換電腦。
因為CPU線程的調度是搶占式調度。
什么意思呢?
就是CPU處理那個線程是隨機的,就算我將游戲的線程優先級設置成最高,也沒法保證CPU一直都能處理它,還是會卡頓。
Java中Java虛擬機也是搶占式調度。
線程在Java里同樣也是一個類,Thread類,Thread就是線程的意思,在Java世界里,萬事萬物都可以是類……
回到一開始的問題:如何運行兩個死循環?
就可以使用線程:
①自定義線程:
定義一個我們自己的線程,然后讓它繼承Java里的線程類Thread就好了。
②重寫run方法:
在這里面就可以運行其中的一個死循環。
③main方法線程:
main方法本身也是一個線程,也就是主線程。
④創建自定義線程對象:
這不用多少,Java的特性面向對象,創建了對象,才好拿來直接使用。
⑤啟動我們自定義的線程:
啟動的時候,就會直接調用自定義線程類中的run方法。
現在加上主線程,一共就有兩個線程了。
⑥主線程中還可以執行一個死循環
這樣的話就可以運行兩個死循環了,就相當于有兩個人在同時工作。
這就是線程的作用。