夜夜躁很很躁日日躁麻豆,精品人妻无码,制服丝袜国产精品,成人免费看www网址入口

網(wǎng)易首頁(yè) > 網(wǎng)易號(hào) > 正文 申請(qǐng)入駐

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

0
分享至

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

那我通常是怎么做菜的呢?

大廚與菜譜

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


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

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

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

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

也就是說(shuō),我可以同時(shí)按照兩份菜譜去做飯,如果足夠快,那么我可以同時(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è)概念了吧。


值得注意的是,計(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è)話題了。

在這種簡(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è)試才能得到。

希望這篇文章對(duì)大家理解多核以及多線程有所幫助。

作者:小風(fēng)哥

來(lái)源:碼農(nóng)的荒島求生

編輯:小咕咕

轉(zhuǎn)載內(nèi)容僅代表作者觀點(diǎn)

不代表中科院物理所立場(chǎng)

如需轉(zhuǎn)載請(qǐng)聯(lián)系原公眾號(hào)

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點(diǎn)推薦
萬(wàn)萬(wàn)沒(méi)想到,人口下降的好處來(lái)得真快!

萬(wàn)萬(wàn)沒(méi)想到,人口下降的好處來(lái)得真快!

山丘樓評(píng)
2025-08-03 11:09:37
“謎一樣的淮安隊(duì)”:對(duì)陣蘇南沒(méi)輸過(guò)

“謎一樣的淮安隊(duì)”:對(duì)陣蘇南沒(méi)輸過(guò)

揚(yáng)子晚報(bào)
2025-08-03 11:09:02
澤連斯基簽署法令,承認(rèn)二戰(zhàn)后將烏克蘭人從東波蘭驅(qū)逐是犯罪行為

澤連斯基簽署法令,承認(rèn)二戰(zhàn)后將烏克蘭人從東波蘭驅(qū)逐是犯罪行為

歷史求知所
2025-08-02 15:55:02
梅德韋杰夫嘴炮迎來(lái)核炮,川普派兩艘核潛艇至俄相關(guān)海域

梅德韋杰夫嘴炮迎來(lái)核炮,川普派兩艘核潛艇至俄相關(guān)海域

移光幻影
2025-08-02 07:53:23
郵報(bào):切爾西想為馬帥提供足夠的陣容厚度,每位置至少會(huì)有2人

郵報(bào):切爾西想為馬帥提供足夠的陣容厚度,每位置至少會(huì)有2人

懂球帝
2025-08-03 20:00:09
教育孩子的特點(diǎn)就是你花錢未必有結(jié)果,不花錢大概率沒(méi)結(jié)果

教育孩子的特點(diǎn)就是你花錢未必有結(jié)果,不花錢大概率沒(méi)結(jié)果

記憶承載
2025-08-02 19:57:49
磁場(chǎng)很干凈的十大表現(xiàn)!磁場(chǎng)決定命運(yùn),不要讓任何人破壞你的磁場(chǎng)

磁場(chǎng)很干凈的十大表現(xiàn)!磁場(chǎng)決定命運(yùn),不要讓任何人破壞你的磁場(chǎng)

三農(nóng)老歷
2025-07-10 14:36:53
最高氣溫43.1℃!重慶登頂 全國(guó)高溫榜

最高氣溫43.1℃!重慶登頂 全國(guó)高溫榜

每日經(jīng)濟(jì)新聞
2025-08-03 09:47:04
你無(wú)意間發(fā)現(xiàn)過(guò)別人什么秘密?網(wǎng)友:自認(rèn)內(nèi)心純潔的朋友慎看!

你無(wú)意間發(fā)現(xiàn)過(guò)別人什么秘密?網(wǎng)友:自認(rèn)內(nèi)心純潔的朋友慎看!

帶你感受人間冷暖
2025-08-03 00:15:08
為了兄弟1:外公生病,母親無(wú)助,狼頭找加代

為了兄弟1:外公生病,母親無(wú)助,狼頭找加代

金昔說(shuō)故事
2025-08-03 16:21:35
攻最能防的,防最能攻的,什么是攻防一體,只有這三人能詮釋!

攻最能防的,防最能攻的,什么是攻防一體,只有這三人能詮釋!

大衛(wèi)的籃球故事
2025-08-02 19:09:19
“撞”出流量后:理想隔空邀約再撞,乘龍卡車內(nèi)涵“活著,才有資格談理想”

“撞”出流量后:理想隔空邀約再撞,乘龍卡車內(nèi)涵“活著,才有資格談理想”

澎湃新聞
2025-08-02 22:58:29
特大暴雨!廣東六部門集體提醒!茂名未來(lái)天氣…

特大暴雨!廣東六部門集體提醒!茂名未來(lái)天氣…

粵西生活圈
2025-08-03 17:30:20
警惕“餓鼠效應(yīng)”扼殺孩子內(nèi)驅(qū)力:聰明的父母都懂得“餓一餓”

警惕“餓鼠效應(yīng)”扼殺孩子內(nèi)驅(qū)力:聰明的父母都懂得“餓一餓”

諾媽家有男寶娃
2025-07-28 16:30:03
“1秒燒炭2秒融金屬”,網(wǎng)店稱便攜式噴火器能“防狼驅(qū)狗”!被指過(guò)度防衛(wèi),記者暗訪

“1秒燒炭2秒融金屬”,網(wǎng)店稱便攜式噴火器能“防狼驅(qū)狗”!被指過(guò)度防衛(wèi),記者暗訪

瀟湘晨報(bào)
2025-08-03 19:17:07
佛山一周新增2770例,國(guó)家疾控局局長(zhǎng)帶隊(duì)趕赴佛山

佛山一周新增2770例,國(guó)家疾控局局長(zhǎng)帶隊(duì)趕赴佛山

醫(yī)學(xué)界
2025-08-03 18:40:03
直到宗慶后人設(shè)崩塌,才懂賭王臨終前,把私生子交給何超瓊含金量

直到宗慶后人設(shè)崩塌,才懂賭王臨終前,把私生子交給何超瓊含金量

攬星河的筆記
2025-07-18 22:29:50
李嘉誠(chéng)長(zhǎng)孫正面照首曝光,李長(zhǎng)禧長(zhǎng)相酷似父親!獲李嘉誠(chéng)特許行事

李嘉誠(chéng)長(zhǎng)孫正面照首曝光,李長(zhǎng)禧長(zhǎng)相酷似父親!獲李嘉誠(chéng)特許行事

娛樂(lè)團(tuán)長(zhǎng)
2025-07-30 15:55:53
年輕男子相親帶女孩吃沙縣,女方全程不動(dòng)筷,網(wǎng)友:換我也不吃

年輕男子相親帶女孩吃沙縣,女方全程不動(dòng)筷,網(wǎng)友:換我也不吃

涵豆說(shuō)娛
2025-07-14 13:03:27
王毅外長(zhǎng)反問(wèn)安全會(huì)議主席:還有哪個(gè)國(guó)家能滿足中國(guó)民眾的需求”

王毅外長(zhǎng)反問(wèn)安全會(huì)議主席:還有哪個(gè)國(guó)家能滿足中國(guó)民眾的需求”

南權(quán)先生
2025-08-02 11:30:28
2025-08-03 20:39:00
中科院物理所 incentive-icons
中科院物理所
愛(ài)上物理,改變世界。
9239文章數(shù) 136266關(guān)注度
往期回顧 全部

頭條要聞

男子與他人合謀侵犯前女友:面對(duì)女方兩次求救未施救

頭條要聞

男子與他人合謀侵犯前女友:面對(duì)女方兩次求救未施救

體育要聞

東契奇:我會(huì)盡我所能帶湖人奪冠

娛樂(lè)要聞

老戲骨朱龍廣去世!六小齡童發(fā)文悼念

財(cái)經(jīng)要聞

杜建英子女在美國(guó)或另有信托

科技要聞

乘龍卡車內(nèi)涵喊話:"活著,才有資格談理想"

汽車要聞

東風(fēng)奕派eπ008六座版售價(jià)18.86萬(wàn)元起

態(tài)度原創(chuàng)

手機(jī)
本地
數(shù)碼
公開(kāi)課
軍事航空

手機(jī)要聞

真我 realme UI 夏季體驗(yàn)升級(jí)計(jì)劃第三波發(fā)布

本地新聞

換個(gè)城市過(guò)夏天|躲進(jìn)雅安過(guò)幾天大熊貓式慢生活

數(shù)碼要聞

機(jī)械革命新款耀世 16 Ultra 筆記本 8 月 6 日預(yù)約

公開(kāi)課

李玫瑾:為什么性格比能力更重要?

軍事要聞

駁斥"解除武裝" 哈馬斯:建國(guó)后再談

無(wú)障礙瀏覽 進(jìn)入關(guān)懷版 亚洲成色777777在线观看影院| 好爽好黄的视频| 色8久久人人97超碰香蕉987| 欧美AAAAAVV一区二区三区| 成年女人免费碰碰视频| 免费女人18毛片a级毛片视频| 亚洲丰满多毛的大隂户| 亚洲AV日韩AV南美| 日本手机在线视频| 乱中年女人伦av三区| 国产精品美女久久久久av爽| 性激烈的欧美三级视频| 日韩高清不卡免费一区二区| 久久欧洲AV无码精品夜色| 漂亮人妻中文字幕丝袜| 亚洲一区 日韩精品 中文字幕| 色偷偷www.8888在线观看| 久污免费看污网站| 国产精品xxx在线| 黑人交配女亚| 国产精品美女久久久久| 亚洲无码 在线播放| 最新无码国产在线播放| 护士AV无码片一区二区三区av| 午夜欧美小网站| 精品国产你懂的在线观看| 日韩 中文字幕 一区| 少妇性爱网站| 后入极品少妇| 免费看8MAv片成人| 大香免费视频| 国产欧美婷婷中文| 亚洲一级a中文字幕一区二区三区| 久久青青草原精品国产app| 亚洲国产成人久久久网站| 又色又爽又高潮免费观看| 337p人体粉嫩胞高清摄影| 香蕉久久av一区二区三区| 日本一卡二卡新区乱码 工| 午夜精品影院| 原创国产av|