研究下在雙CPU下,不同的C語言程序(程序)如何指定在固定的CPU上執行

2023-02-11 12:35:29 字數 1603 閱讀 1258

1樓:匿名使用者

程序管理器裡右鍵->set affinity

程式設計的話看

如何設定程序(執行緒)在指定的cpu上執行?

如何設定程序(執行緒)在指定的cpu上執行

兩個c程式在linux作業系統下同時執行

2樓:匿名使用者

你要改變cpu的排程規則吧...

我不很清楚...任務比較大的情況下,自動會使用兩個cpu的..

如果要你那樣的效果,一個程式要兩個cpu同時處理,可能需要在程式裡面對排程進行設定了,比如只使用某個cpu... 沒試過,我不知道有沒有這些選項.

沒明白lz這樣做的原因...達到「並行」的效果嗎?

3樓:匿名使用者

你可以看看系統的工作管理員,貌似有的有設定,可以設定這個程序用哪個 cpu 執行。你可以拿這個程式的設定部分的**來實現不同的程式執行在不同的 cpu 上。

4樓:匿名使用者

這個不是能由你來控制和決定的

這時 linux 任務排程乾的事情

別搶 linus 的工作

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

5樓:無影之子

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

6樓:匿名使用者

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

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

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

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

7樓:法拉克的

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

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

8樓:匿名使用者

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

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

9樓:匿名使用者

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

10樓:匿名使用者

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

C語言的單精度與雙精度如何區別,C語言中單精度浮點數和雙精度分別如何表示?有什麼差別?

其實就是有效位數不一樣。浮點型變數分為單精度 float 雙精度 double 和長雙精度 long double 3類。在turbo c 中 位元 位 數 有效數字 float 32 6 7double 64 15 16long double 128 18 19ansi c 並未具體規定每種型別資...

C語言有符號和無符號的有什麼不同啊

有符號數如果高位為1,則為負數的補碼。對於一個有符號整數,c編譯程式將把該值 二進位制 的最高位作為符號標誌位 符號標誌位是0,表示正數 為1,表示負數 比如說整bai型變數吧。unsigned int 是從du0到2的zhi32次方dao減1,而signed int 是專 從負2的31次方到正2的...

C語言的來看看!奇怪了輸入不同的數字有的輸出有誤差有的沒有

建議你不要這樣寫 for i 0 num i n i scanf d num i 因為一個個元素輸入的時候,按的就是回車,即 n 所以 num i n 不能成為迴圈結束的條件,而是繼續執行迴圈,直到i 29 你可以自己改一個條件,如把 n 該為 a 就可以了,程式如下 include main 執行...