為什麼在C 程式中一般會建立(2處理器個數 2)左右個執行緒個數

2021-03-27 08:04:45 字數 3803 閱讀 4887

1樓:貓不愛的蟲子

恩,在iocp(完成埠)的相關資料中有提及類似的說明,主要是為了儘可能的發揮處理器的處理能力。每個核心對應兩個執行緒排程,如果負荷比較大的的話,效率應該很好。

2樓:匿名使用者

有這個說法嗎 我們公司就用雙核處理器 開一二十個執行緒

如何在c++中建立一個"console"程式在main()函式中建立4個執行緒執行緒的工作就是向螢幕輸出幾個字元後就結束

3樓:南瓜蘋果

handle winapi createthread(lpsecurity_attributes lpthreadattributes,

size_t dwstacksize,

lpthread_start_routine lpstartaddress,

lpvoid lpparameter,

dword dwcreationflags,lpdword lpthreadid);

擴充套件資料終止執行緒

使用下面的程式,可以用它來終止一個 posix 執行緒:

#include pthread_exit (status)如果 main() 是在它所建立的執行緒之前結束,並通過 pthread_exit() 退出,那麼其他執行緒將繼續執行。否則,它們將在 main() 結束時自動被終止。

4樓:空雪夢見

#include

#include

#include

unsigned int callback tf1(void* p)unsigned int callback tf2(void* p)unsigned int callback tf3(void* p)unsigned int callback tf4(void* p)int main()

c++多執行緒同時執行兩個函式該怎樣程式設計啊?

5樓:

這個是完全取決於bai你的需求。如果du

你只是做控制同一個資料zhi源使用的,就可以dao一個執行緒,分

內別在收到不同的訊息,容呼叫不同的函式。畢竟你只有一個鍵盤,不會真的同時收到兩個事件。這種構架下面,兩個函式必須比較短不能有堵塞,或者等待(大多數情況是這樣的)。

另外一種情況是,當你的處理量比較大,則需要多執行緒,也就是三個執行緒,一個執行緒收訊息事件,另外兩個分別處理事件,如果你不是多核cpu,其結果和上面的構架是一樣的。在多執行緒構架下面,如果是對同一個資料體處理,那麼效果和前者是一樣,甚至更差。至於這麼建立多執行緒,我就不說,這個真的需要你自己去看看。

c++中多執行緒程式設計是不是執行緒數越多越好

6樓:米飯發言

不是,copy因為機器的cpu數、cpu核心數、單核心的執行緒數都是固定的。例如你的機器有1個cpu,雙核四執行緒,那麼你的機器最多同時跑四個執行緒。所以,設定執行緒數為4,理論上能獲得最大效率。

需要額外考慮的是執行緒之間的切換也是很耗時的,所以不建議設定過多執行緒數,有可能會適得其反。

7樓:匿名使用者

最好是cpu核心數+2

c++在一個建立好的執行緒裡面還能在建立執行緒嗎

8樓:匿名使用者

可以,main函式可以稱作程式的主執行緒,主執行緒也是執行緒

vc++中通過createthread建立的執行緒,當執行緒入口函式執行完後,執行緒自己會關閉嗎?

9樓:匿名使用者

不會自己關閉來的。

正確源的做法是:

// 儲存執行緒

bai控制代碼du

handle hthread = createthread(.....)

// 等待執行緒完成zhi,如果是多執行緒的,需要呼叫waitformultipleobjects

waitforsingleobjects(max_threads,hthread,true,infinite);

// 最後dao關閉控制代碼

closehandle(hthread );

10樓:匿名使用者

執行緒函式結束 執行緒就結束 當然是關閉了; 但是 執行緒控制代碼要手動closehandle的 親

windows下用c++建立程序,再建立兩個執行緒

11樓:匿名使用者

我寫的**,沒編譯,你試試行不行

dword winapi sumthread(lpvoid lp)//求和執行緒

return 0;//執行緒返回

}dword winapi multhread(lpvoid lp)//求階乘執行緒

return 0;

}dword winapi printthread(lpvoid lp)//列印執行緒

void main()

c++中程式在哪些場合應該使用多執行緒

12樓:匿名使用者

多執行緒的使用主要是用來處理程式「在一部分上會阻塞」,「在另一部分上需要持續內執行」容的場合。一般是根據需求,可以用多執行緒,事件觸發,callback等方法達到。但是有一些方法是隻有多執行緒能辦到的就只有用多執行緒或者多程序來完成。

舉個簡單的例子,能理解就行。假設有這樣一個程式,

1會不停的處理收到的所有tcp請求。對於每個tcp請求做不同的操作。不能有遺漏

2有很多特定的請求會向一個伺服器傳送儲存的資料,或者是等待使用者輸入。

我們來看看。第1個要求很簡單。用個while迴圈就搞定了。

但第2個特性呢。一旦在等待使用者輸入或者是連線伺服器時,程式會「阻塞」一段時間,這一段時間內就無法處理其他的tcp請求了。

所以可以利用多執行緒,每個執行緒處理不同的tcp請求。這樣程式就不會「阻塞」掉了。

13樓:匿名使用者

1。某段程式執行時間過長,導致介面死掉,可以將其放入執行緒

2。某些**片段需要反覆執行,可以放入執行緒。

3。提高程式的執行效率

14樓:匿名使用者

只要想同一時間做不同的事就可以

c++ 建立執行緒用createthread後,執行緒直接就開始執行了嗎?還是還要再給它一個命令才能執行?

15樓:試圖製造混亂

這要看你createtheread時的引數如何設的,handle createthread(

lpsecurity_attributes lpthreadattributes, // sd

dword dwstacksize, // initial stack size

lpthread_start_routine lpstartaddress, // thread function

lpvoid lpparameter, // thread argument

dword dwcreationflags, // creation option

lpdword lpthreadid // thread identifier

);第五個引數dwcreationflags :執行緒標誌,可取值如下

(1)create_suspended(0x00000004):建立一個掛起的執行緒,需要resumethread喚醒

(2)0:表示建立後立即啟用。

在古文中,一般用什麼字來代替 好 字

古代善就是好的意思,1。善 好 美好 good 母氏聖善。詩 邶風 凱風 善,德之建也。國語 晉語 善人國之主也。左傳 襄公三十年 所以善代者乃萬故。呂氏春秋 長攻 注 善好也 擇其善者而從之,其不善者而改之。論語 述而 豈人主之子孫則敢不善哉?戰國策 趙策 記 曰 士庶有人善,本諸父母。子之成,其...

梧桐在古詩詞中一般是什麼意象的表現

梧桐一般都是和秋連在一起的,中國古詩詞裡一般都是悲秋的,所以梧桐一般是愁苦,悲涼,寂寥的代名詞。像 秋雨梧桐葉落時 秋聲乍起梧葉落 梧桐樹,三更雨,不道離情正苦。梧桐更兼細雨,到黃昏,點點滴滴,這次第怎一個愁字了得。寂寞梧桐深院鎖清秋 斷香殘酒情懷惡,西風吹襯梧桐落。梧桐落,又還秋色,又還寂寞。關於...

在英語中,一般在什麼情況下用單詞的ing形式

表示動作正在進行的時候,用be doing形式 做伴隨狀語的時候 做非謂語動詞的時候 英語單詞在什麼情況下要加ing be動詞和動詞一起出現,動詞加ing。固定搭配。要懂得隨機應變 1.進行時態中 如 i m reading.我在看書 2.動名詞做主語 賓語等。如 seeing is believi...