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

2021-07-02 01:12:03 字數 1454 閱讀 4801

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

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

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

函式原型為:

handle createthread(  

lpsecurity_attributes lpthreadattributes,

dword dwstacksize,

lpthread_start_routine lpstartaddress,

lpvoid lpparameter,

dword dwcreationflags,

lpdword lpthreadid );

引數含義:

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

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 createthrea...

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 ...