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