多執行緒 簡單的執行緒建立,C語言實現

2021-08-06 05:20:34 字數 1487 閱讀 5690

執行緒,是計算機中最小的執行單元。通常,在window應用程式執行時,作業系統都會為其自動建立乙個執行緒,即主線程。通過主

執行緒,可以建立多個執行緒或程序。

使用多執行緒,可以提高程式的執行效率。

執行緒建立函式createthread(),屬於api函式;

函式原型為:

handle createthread(  

lpsecurity_attributes lpthreadattributes,

dword dwstacksize,

lpthread_start_routine lpstartaddress,

lpvoid lpparameter,

dword dwcreationflags,

lpdword lpthreadid );

引數含義:

lpthreadattributes是乙個指向結構體security_attributes的指標,表示指定新建執行緒的安全屬性。該引數可以設定為nul

l,表示建立執行緒時使用預設的安全屬性。

dwstacksize指定執行緒初始化時位址空間的大小。如果這個引數指定為0,那麼新建立的執行緒的位址空間大小與呼叫該函式的執行緒地

址空間大小一樣。

lpstackaddress將指定該執行緒的執行緒函式的位址。當執行緒建立成功後,新建執行緒將呼叫該執行緒函式執行某個功能。

lpparameter表示將要傳遞給新建執行緒的命令列引數,新建執行緒可以根據該命令引數的不同而執行不同的功能。

dwcreationflags用於指定新建執行緒建立後是否立即執行。有兩個狀態值,乙個是create_suspended,作用是建立執行緒成功

後暫停執行;另乙個是0,作用是建立執行緒成功後立即執行。

lpthreadid表示新建執行緒的id號,一般設定為null。

下面是乙個簡單的執行緒建立例子:

#include #include dword winapi myfun1(lpvoid lpparameter);                   //宣告執行緒函式

dword winapi myfun2(lpvoid lpparameter);

int main()

else

::sleep(1000);

return 0;

}dword winapi myfun1(lpvoid lpparameter) //分別實現執行緒函式

dword winapi myfun2(lpvoid lpparameter)

結果是亂的,沒有實現執行緒同步,執行緒同步的將會在以後寫

下面是執行結果樣例:

多執行緒 簡單的執行緒建立,C語言實現

執行緒,是計算機中最小的執行單元。通常,在window應用程式執行時,作業系統都會為其自動建立乙個執行緒,即主線程。通過主線程,可以建立多個執行緒或程序。使用多執行緒,可以提高程式的執行效率。執行緒建立函式createthread 屬於api函式 函式原型為 handle createthread ...

C 多執行緒 建立執行緒

c 中線程的建立一般是通過std thread類實現的,具體的實現方式有以下幾種 void operator int a 過載括號運算子。如果無參則為void operator 這裡有兩種方法通過成員函式建立。而這兩種方法恰好也就是靜態成員函式和非靜態成員函式的區別。靜態成員函式與物件無關,只屬於類...

C語言實現多執行緒的歸併排序

利用多執行緒實現歸併排序。歸併排序是分治演算法的代表,適合改寫為多執行緒。資料規模為2 1 062 10 6 2 10 6,整數。arr ay l engt h 2 106array length 2 10 6 array leng th 2 106 srand int time null for ...