国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

CPU 核數(shù)與線程數(shù)有什么關(guān)系?

商務(wù)辦公
實(shí)際上CPU和廚師一樣,都是按照菜譜(機(jī)器指令)去執(zhí)行某個(gè)動(dòng)作,從操作系統(tǒng)的角度講當(dāng)CPU切換回用戶態(tài)后,CPU執(zhí)行的一段指令就是線程,或者說(shuō)屬于某個(gè)線程。

[[412147]]

作為一名美食資淺愛(ài)好者,盡管小風(fēng)哥我廚藝拙計(jì),但依然阻擋不了我對(duì)烹飪的熱愛(ài)。

那小風(fēng)哥我通常是怎么做菜的呢?

大廚與菜譜

你沒(méi)猜錯(cuò),做菜之前先去下一份菜譜,照著菜譜一步步來(lái):起鍋燒油、蔥姜蒜末下鍋爆香、倒入切好的食材、大火翻炒、加入適量醬油、加入適量鹽、繼續(xù)翻炒、出鍋嘍!

[[412148]]

這樣一道色香味俱佳的小炒大功告成,裝盤端出來(lái)拿起筷子一嘗,難吃死了。

火候有點(diǎn)過(guò),醬油加的有點(diǎn)少,鹽加多了,中餐里的“火候”以及“適量”是最為神秘的存在,可以意會(huì)不可言傳。因此相對(duì)肯德基麥當(dāng)勞之類的標(biāo)準(zhǔn)工業(yè)品,中餐更像是藝術(shù)。每個(gè)人炒出來(lái)的菜味道都不一樣,顯然嘛,每個(gè)人對(duì)火候以及適量的理解是不一樣的。

對(duì)不起,跑題了。

雖然小風(fēng)哥我廚藝不怎么樣,但輸廚藝不能輸氣場(chǎng),有時(shí)我會(huì)幾樣一起來(lái),這邊炒著A菜,那邊炒著B(niǎo)菜。

也就是說(shuō),我可以同時(shí)按照兩份菜譜去做飯,如果小風(fēng)哥足夠快,那么我可以同時(shí)炒 N 樣菜。

炒菜與線程

實(shí)際上CPU和廚師一樣,都是按照菜譜(機(jī)器指令)去執(zhí)行某個(gè)動(dòng)作,從操作系統(tǒng)的角度講當(dāng)CPU切換回用戶態(tài)后,CPU執(zhí)行的一段指令就是線程,或者說(shuō)屬于某個(gè)線程。

這和炒菜一樣,我可以按照菜譜抄魚(yú)香肉絲,那么炒菜時(shí)這就是魚(yú)香肉絲線程;我可以按照菜譜抄宮保雞丁,那么炒菜時(shí)這就是宮保雞丁線程。

廚師個(gè)數(shù)就好比CPU核心數(shù),炒菜的樣數(shù)就好比線程數(shù),這時(shí)我問(wèn)你,你覺(jué)得廚師的個(gè)數(shù)和可以同時(shí)抄幾樣菜有關(guān)系嗎?

答案當(dāng)然是沒(méi)有。

CPU的核心數(shù)和線程個(gè)數(shù)沒(méi)有什么必然的關(guān)系。

單個(gè)核心上可以跑任意多個(gè)線程,只要你的內(nèi)存夠就行;計(jì)算機(jī)系統(tǒng)內(nèi)也可以有任意多核數(shù),只要你有錢就行。

看到這個(gè)答案你是不是覺(jué)得有點(diǎn)疑惑、有點(diǎn)疑問(wèn)、有點(diǎn)不明所以,這好像和其它人說(shuō)的不一樣啊!

別著急,我們慢慢講。

傻傻的CPU

CPU根本不理解自己執(zhí)行的指令屬于哪個(gè)線程,CPU也不需要理解這些,CPU需要做的事情就是根據(jù)PC寄存器中的地址從內(nèi)存中取出后執(zhí)行,其它沒(méi)了。

你看CPU才不管你系統(tǒng)內(nèi)有多少線程。

有多少線程是誰(shuí)需要來(lái)關(guān)心的呢?是操作系統(tǒng)。

線程是操作系統(tǒng)的把戲。

操作系統(tǒng)與多任務(wù)

很久很久以前,計(jì)算機(jī)一次只能執(zhí)行一個(gè)任務(wù),你不能像現(xiàn)在這樣在計(jì)算機(jī)上一邊看電影一邊在下小電影,哦,不對(duì),一邊寫代碼,一邊下載資料。

要么你先寫代碼,寫完代碼后再去下資料,要么你先下資料然后再寫代碼,總之,這兩個(gè)任務(wù)不能同時(shí)進(jìn)行。

這顯然很不方便,就這樣,多任務(wù)——Multi-Tasking,誕生了。

你CPU不是只知道執(zhí)行機(jī)器指令嗎?很好,那我操作系統(tǒng)就通過(guò)修改你的PC寄存器,讓你CPU執(zhí)行A任務(wù)的機(jī)器指令一段時(shí)間,然后下一段時(shí)間再去執(zhí)行B任務(wù)的機(jī)器指令,再然后下一個(gè)時(shí)間段去執(zhí)行C任務(wù)的機(jī)器指令,由于每一段時(shí)間非常少,通常在毫秒級(jí)別,那么在人類看來(lái)A、B、C三個(gè)任務(wù)在“同時(shí)”運(yùn)行。

這就是多任務(wù)的本質(zhì)。

進(jìn)程與線程

CPU不知道執(zhí)行的某一段機(jī)器指令屬于A任務(wù)還是B任務(wù),只有操作系統(tǒng)知道,同時(shí)操作系統(tǒng)還能知道任務(wù)A和B任務(wù)是否屬于同一個(gè)地址空間。

如果屬于同一個(gè)地址空間,那么任務(wù)A和任務(wù)B就是我們熟悉的“多線程”;如果不屬于同一個(gè)地址空間,那么任務(wù)A和任務(wù)B就是我們熟悉的“多進(jìn)程”,現(xiàn)在你應(yīng)該明白這兩個(gè)概念了吧。

這里出現(xiàn)了一個(gè)有點(diǎn)拗口的名詞,地址空間,Address Space,關(guān)于地址空間的概念以及進(jìn)程線程這一部分更加詳細(xì)的講解,請(qǐng)參考小風(fēng)哥的《深入理解操作系統(tǒng)》第7章,關(guān)注公眾號(hào)"碼農(nóng)的荒島求生"并回復(fù)”操作系統(tǒng)“即可。

值得注意的是,計(jì)算機(jī)系統(tǒng)還在單核時(shí)代就已經(jīng)有多線程的概念了,我們之前說(shuō)過(guò),即使是單核也可以執(zhí)行多個(gè)線程,那么有的同學(xué)可能會(huì)有疑問(wèn),在單核的系統(tǒng)中開(kāi)啟多個(gè)線程有什么意義嗎?

單核與多線程

假設(shè)現(xiàn)在有兩個(gè)任務(wù),任務(wù)A和任務(wù)B,每個(gè)任務(wù)需要的計(jì)算時(shí)間都是5分鐘,那么無(wú)論是任務(wù)A和任務(wù)B串行執(zhí)行還是放到兩個(gè)線程中并行執(zhí)行,在單核環(huán)境下執(zhí)行完這兩個(gè)任務(wù)總需要10分鐘,因此有的同學(xué)覺(jué)得單核下多線程沒(méi)什么用。

實(shí)際上,線程這個(gè)概念為程序員提供了一種編程抽象,我們可以把一項(xiàng)任務(wù)進(jìn)行劃分,然后把每一個(gè)子任務(wù)放到一個(gè)個(gè)線程中去運(yùn)行。

假如你的程序帶有圖形界面,某個(gè)UI元素背后需要的大量運(yùn)算,這時(shí)為了防止執(zhí)行該運(yùn)算時(shí)UI產(chǎn)生卡頓,那么可以把這個(gè)運(yùn)算任務(wù)放到一個(gè)單獨(dú)的線程中去。

因此如果你的目的是防止當(dāng)前線程因執(zhí)行某項(xiàng)操作而不得不等待,那么在這樣的應(yīng)用場(chǎng)景下,你根本就不需要關(guān)心系統(tǒng)內(nèi)是單核還是多核以及有多少個(gè)核。

阻塞式I/O

這也是使用線程的經(jīng)典場(chǎng)景。

如果沒(méi)有線程,那么執(zhí)行阻塞式I/O時(shí)整個(gè)進(jìn)程會(huì)被操作系統(tǒng)暫停,但如果你開(kāi)啟兩個(gè)線程,其中一個(gè)線程被阻塞時(shí)另一個(gè)線程依然可以繼續(xù)向前推進(jìn)。

這樣的話你就不需要去使用反人類的異步IO了。

當(dāng)然,這一切的前提是你的場(chǎng)景不涉及高性能以及高并發(fā),如果涉及的話那這就是另一個(gè)話題了,如果你想了解這一話題,關(guān)注公眾號(hào)“碼農(nóng)的荒島求生”并回復(fù)“高并發(fā)”即可。

在這種簡(jiǎn)單的場(chǎng)景下,你創(chuàng)建線程時(shí)也不需要關(guān)心系統(tǒng)中是單核還是多核。

多核時(shí)代

實(shí)際上,線程這個(gè)概念是從2003年左右才開(kāi)始流行的,為什么?因?yàn)檫@一時(shí)期,多核時(shí)代到來(lái)了。

之所以產(chǎn)生多核,是因?yàn)閱魏说男阅芴嵘絹?lái)越困難了。

盡管采用多進(jìn)程也可以充分利用多核,但畢竟多進(jìn)程編程是很繁瑣的,這涉及復(fù)雜的進(jìn)程間通信機(jī)制、進(jìn)程間切換的較高性能損耗、進(jìn)程間內(nèi)存相互隔離帶來(lái)的對(duì)內(nèi)存消耗等。

線程這個(gè)概念很好的解決了上述問(wèn)題,開(kāi)始成為多核時(shí)代的主角,要想充分利用多核資源,線程是程序員的首選工具。

真正的并行

有了多核后,運(yùn)行在兩個(gè)線程中的任務(wù)A和任務(wù)B實(shí)現(xiàn)了真正的并行。

此前這樣一句話廣為引用,這句話是這么說(shuō)的:

threads are for people who can't program state machines

“線程是為那些不懂狀態(tài)機(jī)的人準(zhǔn)備的”,這句話在單核時(shí)代有它的道理,因?yàn)樵趩魏藭r(shí)代,所有的任務(wù)都不是在同時(shí)向前推進(jìn),而是“交錯(cuò)”前進(jìn),A前進(jìn)一點(diǎn),然后B前進(jìn)一點(diǎn),線程并不是實(shí)現(xiàn)這種“偽并行”唯一的方法,狀態(tài)機(jī)也可以。

但在多核時(shí)代,這句話就不再適用了,對(duì)于大多數(shù)程序員來(lái)說(shuō)多進(jìn)程多線程幾乎是充分利用多核資源的唯一方法。

如果你的場(chǎng)景是想充分利用多核,那么這時(shí)你的確需要知道系統(tǒng)內(nèi)有多少核數(shù),一般來(lái)說(shuō)你創(chuàng)建的線程數(shù)需要與核數(shù)保持線性關(guān)系。

也就是說(shuō),如果你的核數(shù)翻倍,那么創(chuàng)建的線程數(shù)也要翻倍。

需要多少線程?

值得注意的是,線程不是越多越好。

如果你的線程是不涉及任何I/O、沒(méi)有任何同步互斥之類的純計(jì)算類型,那么每個(gè)核心一個(gè)線程通常是最佳選擇。但通常來(lái)說(shuō),線程都需要一定的I/O,可能需要一定的同步互斥,那么這時(shí)適當(dāng)增加線程可能會(huì)提高性能,但當(dāng)線程數(shù)量到達(dá)一個(gè)臨界值后性能開(kāi)始下降,這時(shí)線程間切換的開(kāi)銷將顯著增加。

這里之所以用適當(dāng)這個(gè)詞,是因?yàn)檫@很難去量化,只能用你實(shí)際的程序根據(jù)真正的場(chǎng)景進(jìn)行測(cè)試才能得到這個(gè)值。

總結(jié)

線程數(shù)和CPU核心數(shù)可以沒(méi)有任何關(guān)聯(lián),如果在使用線程時(shí)僅僅針對(duì)上述提到的幾個(gè)簡(jiǎn)單場(chǎng)景,那么你根本不需要關(guān)心CPU是單核還是多核。

但當(dāng)你需要利用線程充分發(fā)揮多核威力時(shí),通常情況下你創(chuàng)建的線程數(shù)與核數(shù)要保持一種線性關(guān)系,最佳系數(shù)通常需要測(cè)試才能得到。

 

我是小風(fēng)哥,希望這篇文章對(duì)大家理解多核以及多線程有所幫助。

 

責(zé)任編輯:武曉燕 來(lái)源: 碼農(nóng)的荒島求生
相關(guān)推薦

2023-11-02 09:59:53

C++設(shè)計(jì)模式

2021-10-18 10:17:07

Go Golang語(yǔ)言

2023-07-10 10:53:22

2022-11-01 15:02:11

2023-01-03 19:11:09

CPUI/O速度

2019-09-29 19:28:13

區(qū)塊鏈比特幣加密貨幣

2015-08-27 14:05:01

大數(shù)據(jù)創(chuàng)業(yè)

2021-04-27 10:14:28

大數(shù)據(jù)物聯(lián)網(wǎng)IOT

2022-02-14 11:28:51

區(qū)塊鏈元宇宙代幣

2022-08-15 09:02:22

Redis模式訂閱消息

2018-09-30 15:55:56

2017-10-23 14:40:01

2015-09-24 10:40:31

NFVSDN

2015-08-03 10:20:39

大數(shù)據(jù)Hadoop

2020-02-27 08:52:51

NFVSDN網(wǎng)絡(luò)

2021-02-02 12:46:36

Spring異步循環(huán)

2023-04-06 11:54:55

2024-03-10 21:00:33

2018-01-25 20:30:29

云計(jì)算云存儲(chǔ)互聯(lián)網(wǎng)

2022-07-06 08:36:34

threadpromise
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

激情成人中文字幕| 成年人网站国产| 精品一区中文字幕| 成年人免费视频观看| 欧美一区二区三区视频免费播放| 国产精品字幕| 成人区精品一区二区| zzijzzij亚洲日本少妇熟睡| 日韩资源在线| 欧美成人激情视频免费观看| 狠色狠色综合久久| www.涩涩涩| 亚洲韩国欧洲国产日产av| 成人一区而且| 久久精品视频16| 欧美精品1区2区| 亚洲系列另类av| www.欧美黄色| 欧美日韩一区二区精品| a视频在线免费看| 欧美国产日韩一区| 亚洲一区二区三区四区五区午夜| av免费中文字幕| 欧美精品色综合| 成人黄色av网址| 亚洲国产精品一区二区第一页| 中文字幕一区二区三| 免费看电影在线| 国产精品国产三级国产aⅴ9色| 九九**精品视频免费播放| 国产91精品捆绑调教| 日韩精品久久久久久久玫瑰园| 欧美天堂影院| 欧美另类videos| 91国偷自产一区二区使用方法| 玖玖精品在线| 久久久99国产精品免费| 中文乱码免费一区二区| 免费电影视频在线看 | bl视频在线免费观看| 97视频com| 国产成人精品影视| www.成人.com| 国产精品福利小视频| 国产91丝袜在线播放0| 大片免费播放在线视频| 日韩在线视频免费观看| 久久精品天堂| 一卡二卡三卡亚洲| 欧美大片第1页| 久久99精品久久久久久久久久久久 | 国产黄视频在线观看| 日韩av在线免费| 亚洲激情久久| 色国产在线视频| 亚洲欧美制服丝袜| 久久午夜精品一区二区| 最近97中文超碰在线| 九九久久久久99精品| 国产精一区二区三区| 尤物在线网址| 久久99欧美| 欧美三级xxx| 牛牛影视久久网| 99热自拍偷拍| 亚洲欧美日韩国产中文| 免费看的黄色欧美网站| 青青免费在线视频| 国产精品黄色影片导航在线观看| 2020国产精品自拍| 日韩精品专区| 蜜桃网站在线观看| 亚洲欧美国产视频| 国产麻豆精品一区二区| 丁香花在线影院| 日韩欧美精品一区二区三区经典| 欧美高清一级片在线| 激情亚洲网站| 如如影视在线观看经典| 国产精品69av| 婷婷开心久久网| 九九热爱视频精品视频| 偷窥自拍亚洲色图精选| 日韩三级在线播放| 日韩欧美国产成人一区二区| 亚洲三级观看| 男人资源在线播放| 蜜桃久久影院| 日韩三级视频在线看| 首页欧美精品中文字幕| 污污的网站在线免费观看| 日韩成人av网站| 亚洲精品福利在线观看| 国产成人免费网站| 久久久久毛片免费观看| 成人免费淫片免费观看| 国产精品入口福利| 91国产免费观看| 天堂成人免费av电影一区| 91丝袜在线| 青青青青在线视频| 久久久久久久久国产| 一区二区三区欧美日韩| 99久久www免费| av午夜在线| 亚洲一卡二卡三卡| 一区二区在线视频播放| 亚洲国产精华液网站w| 日韩一区二区三区高清在线观看| jizz18女人| 66m—66摸成人免费视频| 一区二区三区不卡在线观看| 最新欧美人z0oozo0| а√天堂官网中文在线| 超碰10000| 久久躁狠狠躁夜夜爽| 亚洲一区欧美一区| 一区二区三区四区五区精品视频 | 久久精品女人天堂av免费观看| 999久久欧美人妻一区二区| 久久精品夜夜夜夜夜久久| 国产日韩精品一区| 日本精品黄色| 日本电影全部在线观看网站视频| 日韩av一区二区三区在线 | 91爱视频在线| 欧美老少配视频| 日韩视频免费看| 欧美高跟鞋交xxxxxhd| 深夜福利91大全| 精品久久久久一区| 嫩模私拍啪啪| 狠狠色狠狠色综合人人| 精品国产一区二区在线观看| 激情图区综合网| 日本99精品| 毛片在线播放网站| 免费国产成人看片在线| 国产在线视频福利| 激情文学综合丁香| 亚洲无线观看| 日本免费视频| 亚洲国产精品毛片| 国内精品久久久| 欧美一卡2卡三卡4卡5免费| 97久久精品人人澡人人爽| 91久久国产| 中文字幕日韩高清在线| 性爱视频在线播放| 在线免费福利| 男人操女人逼免费视频| 日本在线成人一区二区| 成人激情春色网| 91av福利视频| 久久久国产91| 国产视频精品一区二区三区| 欧美亚洲动漫制服丝袜| 亚洲欧美日韩国产综合| 波多野结衣一区二区三区| 久久九九99| 亚洲国产高清一区| 日韩一区电影| 亚洲人成网亚洲欧洲无码| 国产精品中文| 超薄肉色丝袜脚交一区二区| 青春草视频在线观看| 四虎国产精品永远| 视频在线国产| 91av影院| 99热在线免费观看| av网站在线不卡| 那种视频在线观看| 浮妇高潮喷白浆视频| 视频一区二区视频| 亚洲乱码一区二区三区三上悠亚| 精品免费二区三区三区高中清不卡| 国产剧情日韩欧美| 欧美在线观看视频| 欧美国产中文字幕| 蜜月aⅴ免费一区二区三区| 国产一区二区动漫| 亚洲精品久久久久久久久久久久 | 日韩av高清在线看片| 亚洲欧美国产不卡| 国产精品美女久久久久久久久| 国产精品十八以下禁看| 538任你躁在线精品免费| 色135综合网| 欧美日本在线一区| 国内精品国产三级国产在线专| 久久一区二区三区四区| 国产成人免费视频网站| 精品亚洲porn| 寂寞少妇一区二区三区| 免费久久精品视频| 美女视频黄频大全不卡视频在线播放| 亚洲高清网站| 视频一区中文字幕| 狠狠色伊人亚洲综合成人| 黑人巨大精品欧美黑白配亚洲|