多執行緒問題

2021-06-22 11:01:19 字數 1381 閱讀 7186

問題描述:有4個執行緒和1個公共的字元陣列。執行緒1的功能就是向陣列輸出a,執行緒2的功能就是向字元輸出b,執行緒3的功能就是向陣列輸出c,執行緒4的功能就是向陣列輸出d。要求按順序向陣列賦值abcdabcdabcd,abcd的個數由執行緒函式1的引數指定。[注:c語言選手可使用windows sdk庫函式]

介面說明:

void init();  //初始化函式

void release(); //資源釋放函式

unsignedint__stdcall threadfun1(pvoid pm)  ; //執行緒函式1,傳入乙個int型別的指標,用於初始化輸出a次數,資源需要執行緒釋放

unsignedint__stdcall threadfun2(pvoid pm)  ;//執行緒函式2,無引數傳入

unsignedint__stdcall threadfun3(pvoid pm)  ;//執行緒函式3,無引數傳入

unsigned int __stdcall threadfunc4(pvoid pm);//執行緒函式4,無引數傳入

char  g_write[1032]; //執行緒1,2,3,4按順序向該陣列賦值。

#include #include #include using namespace std;

char g_write[1032];

int num=0;

int iloop=0;

handle getthreadeve[4];

handle hthread[4];

unsigned int __stdcall threadfun1(pvoid pm)

_endthreadex(0);

return 0;

}unsigned int __stdcall threadfun2(pvoid pm)

{ for (int i=0;i>num;

int *n=null;

init();

n=(int*)malloc(sizeof(int));

*n=num;

hthread[0]=(handle)_beginthreadex(null,0,threadfun1,n,0,null);

hthread[1]=(handle)_beginthreadex(null,0,threadfun2,null,0,null);

hthread[2]=(handle)_beginthreadex(null,0,threadfun3,null,0,null);

hthread[3]=(handle)_beginthreadex(null,0,threadfun4,null,0,null);

waitformultipleobjects(4,hthread,true,infinite);

release();

cout<

多執行緒問題

程式 是由多個程序組成的。可以理解為靜態的 程序 可以理解為執行中的程式。執行緒 是組成程序的單元,乙個程序中有多個執行緒。我們經常把執行緒看做是程序中的某乙個任務。方式一 繼承乙個thread類 方式二 實現乙個runnable介面 兩種方式相比較,哪個能好點那?一般建議是實現runnable介面...

多執行緒問題

執行緒先達到corepoolsize,達到了去排隊 佇列滿了就去新建執行緒,達到了maxpoolsize 就執行拒絕策略了。所以大家在取queuesize的時候,就要取getthreadpoolexecutor getpoolsize getthreadpoolexecutor getqueue s...

多執行緒問題

多執行緒的實現方式 1.繼承thread類 2.實現runnable介面 3.實現callable介面 資源類實現callable介面,main方法中 futuretask ft new futuretask 實現callable介面的資源類的物件 new thread ft,threadname ...