執行緒 程序數遠遠大於核心數會怎麼樣?

時間 2021-05-12 08:35:43

1樓:lhelpme

現代linux 執行緒的上下文切換是微秒級別的對應的go消耗大概百納秒

差個10倍左右

還有個時間片問題,和執行緒堆疊分配問題

還有你本身執行緒需要處理的內容

測試幾次,打滿cpu就知道上限了

2樓:Mimosa

一般多執行緒數是核數的兩倍,可以取得最好的綜合執行效率。題主的問題出在io而不是CPU運算,如果僅僅用擴大多執行緒數來解決問題,比較浪費資源(不同程式語言裡的多執行緒還會很不一樣),理想情況是用多執行緒(thread)與纖程(fiber)結合的方式。也就是 Go語言裡的routines方式。

3樓:cheng

沒怎麼樣啊,沒太明白。你的意思是不是說,認為作業系統的多任務排程是基於處理器多核心?

如果是這樣,其實只看linux,出現的時候幾乎還沒有多核處理器。

多工切換實現的是一種單個任務獨佔處理器的抽象,這個抽象由作業系統實現,基本排程原理簡單來說就是分時復用和現場保護/現場恢復。

想象一下,只有一間房間(模擬於只有單核),有多個人(模擬多個任務),有乙個管家(作業系統),管家讓你們彼此互相看不到對方存在(任務隔離和位址空間),管家輪流把乙個人放進房間,但管家有個秘方,可以向房間噴霧讓裡面人毫無意識昏過去(任務掛起),此時再把你拖出來放在乙個安全的空地上,並同時記下此時房間的一切細節記在一張紙條上壓在你身下(現場保護),接著再把另外乙個之前已經昏過去去的人拖進房間,按照之前他身子下面的紙條恢復房間原樣,並再次噴一種喚醒劑(任務喚醒和現場恢復)。這樣你們所有人都以為自己一直獨佔了這個房間而且從沒出去過,這樣這個管家就實現了多人對單個房間的獨佔這一假象的抽象。

又回頭看了下問題,似乎你想問的不是這個,打了這麼多字也不刪了,影響至少有降低cache命中率,任務處理速度變慢等等

4樓:遺跡

你說的我暫且理解成Thread/Process…那肯定有效能問題,而且這麼多程序對記憶體也是巨大消耗。建議參考下非同步和協程方案

5樓:Zheng

執行緒程序大家排隊輪著來

排隊規則由作業系統決定

不過這個時候可能得不償失,不同的程序切換會有上下文load/store,cache命中率大大降低,效能急劇下降

中外合作辦學,為何宣傳遠遠大於實際呢?

Canzzz 一般這種情況很可能讀了沒有備案的中外合作辦學專案。國內目前存在的中外合作辦學很多,但實際上有備案的專案並不多。只有備案專案畢業後才可以正常申請國外學歷學位認證或者中外合作辦學學歷學位認證。有備案的專案各方面都會正規很多,讀未備案自然就是被坑錢了。 匿了匿了,上海某985中外合作在讀 錄...

如何評價國安賽季中期換帥,風險遠遠大於機遇?

騎著蝸牛追飛彈 施密特缺乏指揮的藝術,尤其當球隊處於逆境的時候。執掌國安帥印到最後離任,施密特並沒有留下過 挽狂瀾於既倒 的經典指揮場次,甚至很多時候被認為欠缺破釜沉舟 背水一戰的魄力。施密特是有短板的好教練。他能帶國安進步,國安現在的風格與體系在中國足壇也是領先的,可當國安追求成績上巔峰的時候,或...

世界盃中球隊前場遠遠大於後場帶來什麼影響?

Munin 進攻只能贏得球迷,而防守能贏得獎盃。單看這個題目很明顯說的是阿根廷啊,但是阿根廷的後場遠沒有大家認為的那麼不堪。說句實話,阿根廷第一場比賽我就覺得會吃虧,原因很簡單,隊伍整體磨合不足。尤其是後場防守的磨合。對陣冰島全場78 的控球率卻難有機會破門,說明不僅後場磨合不足,前場也一樣。迪瑪利...