程序:乙個執行的程式,記憶體,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執行緒的...