c++多線程thread
島幸17278042034咨詢: C++的std:thread是怎么進(jìn)行參數(shù)傳遞的 -
鹽源縣列軸承回復(fù):
______ std:thread應(yīng)該是c++11的標(biāo)準(zhǔn),傳遞參數(shù)很靈活.比如這樣:thread th([](float f, int i, void* v) { printf("%f, %d, %x\n", f, i, v); }, 0.5f, 100, nullptr); 這樣就傳遞了3個(gè)參數(shù).
島幸17278042034咨詢: C++中,用#include "thread",創(chuàng)建的線程 -
鹽源縣列軸承回復(fù):
______ #include <pthread.h>#include <stdio.h> void* print_xs (void* unused) { while (1) fputc ('x', stderr); return NULL; } int main () { pthread_t thread_id; pthread_create (&thread_id, NULL, &print_xs, NULL); while (1) fputc ('o', stderr); return 0; }
島幸17278042034咨詢: C++中的std:thread的join函數(shù)與detach函數(shù)有什么區(qū)別 -
鹽源縣列軸承回復(fù):
______ C++中的thread對(duì)象通常來說表達(dá)了執(zhí)行的線程(thread of execution),這是一個(gè)OS或者平臺(tái)的概念.當(dāng)thread::join()函數(shù)被調(diào)用后,調(diào)用它的線程會(huì)被block,直到線程的執(zhí)行被完成.基本上,這是一種可以用來知道一個(gè)線程已結(jié)束的機(jī)制...
島幸17278042034咨詢: C++如何創(chuàng)建線程 -
鹽源縣列軸承回復(fù):
______ 看你線程創(chuàng)建成功否.而且就算是多線程,CPU其實(shí)也是按調(diào)度方式分別執(zhí)行,不是真正的并行運(yùn)行啦,你可以在線程里面輸出試試.CreateThread(NULL,0,ThreadProc,NULL,NULL,NULL); 第一個(gè)參數(shù)是指向安全屬性的指針,NULL就行 第...
島幸17278042034咨詢: C++多線程怎么實(shí)現(xiàn) -
鹽源縣列軸承回復(fù):
______ C++多線程也可以使用UNIX C的庫(kù)函數(shù),pthread_mutex_t,pthread_create,pthread_cond_t,pthread_detach,pthread_mutex_lock/unlock,等等.在使用多線程的時(shí)候,你需要先創(chuàng)建線程,使用pthread_create,你可以使主線程等待子線程使用pthread_join,也可以使線程分離,使用pthread_detach.線程使用中最大的問題就是同步問題,一般使用生產(chǎn)著消費(fèi)者模型進(jìn)行處理,使用條件變量pthread_cond_t,pthread_mutex,pthread_cond_wait來實(shí)現(xiàn).別人說再多也是別人的,自己看書或者Google去吧.
島幸17278042034咨詢: C++ 線程 返回值 -
鹽源縣列軸承回復(fù):
______ 以你的演示代碼可以使用 GetExitCodeThread方法,僅限windows平臺(tái). 不過這樣有限制,只能是unsigned int類型,或者是能強(qiáng)制轉(zhuǎn)換為此類型的類型. 可以用其他方法來獲取. 如: unsigned int threadres = 0; unsigned int __stdcall Fun(void *pPM...
島幸17278042034咨詢: 【C++多線程】 如何在線程之間傳遞指針. -
鹽源縣列軸承回復(fù):
______ 線程之間是共享進(jìn)程的內(nèi)存空間的.所以,在一個(gè)線程中修改的內(nèi)容,另外的線程是可以直接訪問的.你想在多個(gè)線程之間傳遞指針,應(yīng)該是想操作同一塊內(nèi)存.建議定義一個(gè)全局指針,外加一個(gè)全局互斥量.在不同線程中使用同一個(gè)指針修改數(shù)據(jù)之前,加鎖互斥量,并且在結(jié)束數(shù)據(jù)操作之后釋放互斥量.
島幸17278042034咨詢: 編寫一個(gè)多線程程序(C++),急呀,各位請(qǐng)幫忙.簡(jiǎn)單的就好了. -
鹽源縣列軸承回復(fù):
______ 簡(jiǎn)單的多線程編程 Linux系統(tǒng)下的多線程遵循POSIX線程接口,稱為pthread.編寫Linux下的多線程程序,需要使用頭文件pthread.h,連接時(shí)需要使用庫(kù)libpthread.a.順便說一下,Linux下pthread的實(shí)現(xiàn)是通過系統(tǒng)調(diào)用clone()來實(shí)現(xiàn)的.clone...
島幸17278042034咨詢: VC++上怎么用C++實(shí)現(xiàn)多線成? -
鹽源縣列軸承回復(fù):
______ C/C++ 簡(jiǎn)單的多線編程 fibonacci序列/*多線程編程:創(chuàng)建一個(gè)線程來產(chǎn)生fibonacci*/#include#include#include DWORD WINAPI...
島幸17278042034咨詢: c++ 多線程設(shè)計(jì) -
鹽源縣列軸承回復(fù):
______ 我給幾點(diǎn)意見:1. 多線程設(shè)計(jì),不分你是何種語(yǔ)言,是硬件支持以及操作系統(tǒng)實(shí)現(xiàn)調(diào)度過程的.2. CPU的硬件特性決定了同一個(gè)時(shí)間片內(nèi),只允許一個(gè)線程在CPU內(nèi)運(yùn)行,如果你多個(gè)線程都有搶占CPU的特性,那么,CPU要在不同線程中切換(切換過程會(huì)引發(fā)相關(guān)的環(huán)境切換,也就是要做很多費(fèi)時(shí)間的操作),如果頻繁的切換,就會(huì)造成程序運(yùn)行效率低下.3. 如果你的對(duì)你所使用的語(yǔ)言已經(jīng)比較熟悉(這是實(shí)驗(yàn)的基礎(chǔ)),建議你看操作系統(tǒng)原理相關(guān)的書籍,這不屬于C++語(yǔ)言的范圍.你也可以直接看基于某個(gè)系統(tǒng)下有針對(duì)性的多線程書籍,如《Win32多線程程序設(shè)計(jì)》,《linux多線程程序設(shè)計(jì)》這樣的書籍. 如有疑問,可以追加問題,歡迎采納.謝謝!