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

時間 2021-07-21 02:17:55

1樓:無影之子

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

2樓:匿名使用者

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

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

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

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

3樓:法拉克的

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

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

4樓:匿名使用者

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

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

5樓:匿名使用者

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

6樓:匿名使用者

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

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

7樓:匿名使用者

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

8樓:匿名使用者

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

9樓:97樂於助人

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

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

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

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

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

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

10樓:

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

和好朋友在同一屋簷下同吃同住是什麼體驗

彼岸黎花 要和好朋友同。在一屋簷下,同吃同住是什麼體驗?那肯定是一個很好的體驗呢。相互之間有共同話語,有共同的愛好,可以相互的溝通。聊天是非常美的一件事兒。 dxdll手繪 個人覺得肯定很開心,好朋友肯定是大家的興趣愛好相近。能夠互相包容理解。碰到什麼困難的事情?大家可以相互幫忙。生活中遇到什麼難題...

ti 多核同時操作同一各佇列會有什麼問題

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

請教如何把同EXCEL中某工作表一下同一類資料篩選出來並在另一工作表中彙總自動求和,謝謝

其他的回答是正確的,只要用sumifs就可以了在表二的 m3單元格輸入公式 sumifs 要彙總的資料區域,條件區域,條件值 sumifs 2018年12月 d 3 d 100,2018年12月 c 3 c 100,b3 然後把這個公式下拉就可以了。注 100是你可能出現的最大行數,如果數值多,可以...