同一程序的多個執行緒可以被多個CPU核心並行執行嗎

2022-10-11 04:05:07 字數 2840 閱讀 5451

1樓:

可以。程序和執行緒在程序資源的管理上(比如記憶體空間)是不一樣的,但在排程上其實是一樣的。這個還要看程式語言的執行緒模型。某些語言(如python)的執行緒模型不支援並行執行在多個核上

同一程序的多個執行緒可以被多個cpu核心並行執行嗎?

2樓:匿名使用者

一個程序中的多個執行緒可以被多個處理器並行執行。

在多核cpu下,同一程序下的多個執行緒可以並行執行嗎

3樓:無影之子

一個程序的執行緒都是序列(使用者態多執行緒中),不同的程序可以並行(多核處理器中)。在使用者態多執行緒中同一個程序下的多個執行緒不可以並行執行,不管多少核處理器,它的執行緒只能交替順序執行。你可以把一個使用者程序看做是一個人,執行緒是他要處理的事,cpu核心看做是辦事處視窗,一個人再nb也不可能同一刻時間到兩個以上視窗辦理不同的事

4樓:匿名使用者

cpu在某一個時間點上確實只能執行一個執行緒,但是多執行緒不是由於多核或者雙核才叫多執行緒。

是由於,很多個執行緒在並行執行的時候,cpu根據一定的執行緒排程演算法,頻繁的進行執行緒切換,當正在執行的一個執行緒需要進行io操作或者需要訪問記憶體的時候,cpu完全可以放棄該執行緒,轉而排程執行緒就緒佇列上的其他執行緒,被放棄的執行緒則進入阻塞狀態,io操作或者訪問記憶體操作結束之後,該執行緒可以進入執行緒就緒佇列上。

人們通常意義上的多執行緒指的是,由於cpu根據一定的執行緒排程演算法來切換執行緒,所以在一個時間段上,可以看做很多執行緒在併發執行。

其實還是在某一個時間點上只有一個執行緒在執行罷了。

5樓:法拉克的

是的,多cpu正是為了多執行緒執行的。但是要注意執行緒間的同步。

糾正一個概念,是併發執行,不是並行執行。

6樓:匿名使用者

同一個程序下的所有執行緒都只能在cpu同一個核下執行,同一程序下的多個執行緒在同一個核下輪流使用處理器,因為處理速度快,看起來是並行,實際上同一程序下的多執行緒是序列。

多核可以同時執行多個程序。

7樓:匿名使用者

現在的軟體一般支援多執行緒的

8樓:匿名使用者

那要看這個軟體對多執行緒是否支援

多核心cpu在同一時刻真的能同時執行多個執行緒嗎?多核心cpu是真正意義上的多個物理cpu嗎?

9樓:

與超執行緒cpu在邏輯上模擬雙核不同,多核cpu每個核心都可以獨立執行一個執行緒,是真正意義的多個物理cpu。

第二個問題,如果你的程式的執行緒數少於cpu的核心數,且系統此時沒有其他程序同時執行,那麼這個程式的每個執行緒會享有一個cpu,當同時執行的執行緒數多於cpu核心數時,cpu會採用一定的排程演算法每隔一段時間就將這些執行緒調入或調出cpu,以確保每個執行緒都能分享一部分cpu時間,實現多執行緒併發。

一個程序中的多個執行緒可以在多核處理器上的 不同核上執行嗎

10樓:小七哥

可以的 使用setthreadaffinitymask(hthread,number),其中number就是你想繫結執行緒到指定cpu的掩碼例如number=1,即cpu 0,number=3,二進位制0000 0011,表示cpu 0 cpu1

一個單執行緒程式是否可以被多個cpu同時執行?如果可以,程式的正確性如何保證?

11樓:匿名使用者

這個叫平行計算

時間上的流水線處理 其實就是分塊交錯多重複,這個得保證程式的本身是多種重複的操作的集合

空間上的 是多模型解構 pram模型 bsp模型參見 平行計算 的百科

12樓:

不可以的,多核cpu必須配合多執行緒程式才能完全發揮效能。單執行緒的程式時常導致雙核cpu佔用50%,四核cpu佔用25%的情況出現。

在多核的系統中,同一個程序的2個執行緒可以分別同時執行在不同的核(cpu)上嗎?

13樓:匿名使用者

實際上有些作業系統在內部並不分程序和執行緒,排程方式是一致的。比如linux,共享記憶體的就是執行緒,不共享記憶體的就是程序,然後把包裝好的建立函式暴露給posix api。

14樓:匿名使用者

得看執行緒是什麼執行緒,除此之外還要看作業系統的排程策略。核心級執行緒理論上是可以同時在兩個核心上執行的,但是現實情況是執行緒數遠遠大於cpu數量或者核心數,所以就是多個執行緒搶佔系統的cpu了。

15樓:97樂於助人

使用top命令,具體用法是 top -h,加上這個選項,top的每一行就不是顯示一個程序,而是一個執行緒。

使用ps命令,具體用法是 ps -xh,這樣可以檢視所有存在的執行緒,也可以使用grep作進一步的過濾。

使用ps命令,具體用法是 ps -mq pid,這樣可以看到指定的程序產生的執行緒數目。

更進一步,其實一些系統監控工具,在本質上也是讀取的系統產生的檔案罷了。

在linux系統上,多個執行緒能否同時使用多個cpu核心?有人說能,有人說不能 5

16樓:匿名使用者

與超執行緒cpu在邏輯上模擬雙核不同,多核cpu每個核心都可以獨立執行一個執行緒,是真正意義的多個物理cpu。

第二個問題,如果你的程式的執行緒數少於cpu的核心數,且系統此時沒有其他程序同時執行,那麼這個程式的每個執行緒會享有一個cpu,當同時執行的執行緒數多於cpu核心數時,cpu會採用一定的排程演算法每隔一段時間就將這些執行緒調入或調出cpu,以確保每個執行緒都能分享一部分cpu時間,實現多執行緒併發。

我的程序裡為什麼有多個一樣的程序

不是其他的一定是。4個。2個。有問題防毒吧。用木馬客星或者木馬殺客都很管用。這個 5個 沒問題。為什麼我的電腦裡有很多相同的程序 應該是中毒了,一般為4到5個,其餘的程序都只有一個。估計是你中毒了 windows是本身只有一個程式是可以重名的就是。最基本的系統程序 也就是說,這些程序是系統執行的基本...

同一張銀行卡可以繫結多個支付寶帳號嗎

可以的,一張銀行卡是可以繫結20個支付寶賬號的。一張銀行卡可以同時繫結多個支付寶帳戶 1 銀行卡所有人的名稱要與身份證的名稱一致,一個身份證只能辦一個支付寶賬戶,理論上說,一張銀行卡,只能與一個支付寶帳戶繫結。2 繫結不是和銀行簽約,是這個銀行卡,與支付寶關聯起來,支付寶的錢通過提現,可以到你繫結的...

如何批量刪除多個檔案的同一列,如何批量刪除多個TXT檔案的同一列?

刪除整列,太複雜。可以藉助用excel開啟,分列,刪除整列,然後另存為txt.這個思路是 1 每行比較有沒有要刪除的 2 如果有,刪除,3 下一行 4,處理完畢,儲存檔案。如何批量刪除幾個txt文字檔案中某段相同的文字 將要刪除的文字替換成空白的內容 在offie裡可以批量換,把它換成空格就可以 怎...