windows多執行緒程式設計

2021-06-21 13:28:24 字數 2315 閱讀 4731

程序:乙個執行的程式,記憶體,cpu時間等都歸程序所有.

執行緒:cpu排程的最小單位,乙個程序內的多個執行緒共享4g記憶體.

程式的乙個執行路徑

1.最基礎的使用方法.

createthread,exitthread,closehand

#include #include //createthread,exitthread,closehandle

#include #include bool repeat = true;

dword winapi mythread1(lpvoid lpparameter)

dword exitcode;

exitthread(exitcode);

return 0;

}dword winapi mythread2(lpvoid lpparameter)

dword exitcode;

exitthread(exitcode);

return 0;

}dword winapi killthread(lpvoid lpparameter)

int main()

handle2 = createthread(null, 0, mythread2, null, 0, &dw2);

if (handle2 == null)

sleep(1000);

handle3 = createthread(null, 0, killthread, null, 0, &dw3);

if (handle3 == null)

closehandle(handle1);

closehandle(handle2);

closehandle(handle3);

return 0;

}

vc多執行緒的編譯需要設定,c/c++的code generation的use run-time library 選擇multithread;

createremotethread函式在別的程序中建立乙個執行緒

suspendthread(handle),rssumethread(handle)暫停和重啟乙個執行緒.

#include #include //createthread,exitthread,closehandle

#include #include /

//suspend resume 的使用

/dword winapi mythread(void*)

return 0;

}int main()

printf("***resume***\n");

resumethread(handle);

sleep(300);

}}

terminatethread(handle,dword)第二個引數為退出碼.用於終止乙個執行緒

這個函式非常的危險,立即終止了執行緒,會造成分配的堆疊沒有釋放,一般不用.

#include #include //createthread,exitthread,closehandle

#include #include /

//suspend resume 的使用

/dword winapi mythread(void*)

return 0;

}int main()

closehandle(handle);
return 0;
}

getexitcodethread(handle,lpdword)第二個用於儲存exitcode

#include #include //createthread,exitthread,closehandle

#include #include using namespace std;

///getcurrentthread getexitcodethread 的使用

/dword winapi mythread(void*)

int main()

Windows多執行緒程式設計

一 問題的提出 編寫乙個耗時的單執行緒程式 新建乙個基於對話方塊的應用程式singlethread,在主對話方塊idd singlethread dialog新增乙個按鈕,id為idc sleep six second,標題為 延時6秒 新增按鈕的響應函式,如下 void csinglethread...

Windows多執行緒程式設計

函式原型 handlewinapi createthread lpsecurity attributes lpthreadattributes,size t dwstacksize,lpthread start routine lpstartaddress,lpvoid lpparameter,dw...

windows多執行緒程式設計2

強調 win32說明檔案一再強調執行緒分為gui執行緒和worker執行緒兩種。gui執行緒 負責建造視窗以及處理主訊息迴圈。worker 負責執行純粹運算工作,如重新 計算或重新編頁等等,它們會導致主線程的訊息佇列失去反應。一般而言,gui 執行緒絕不會去做那些不能夠馬上完成的工作。gui執行緒的...