Win32程序执行单元-多线程
生活随笔
收集整理的這篇文章主要介紹了
Win32程序执行单元-多线程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
- 多線程:主線程在運行過程中,可以創建新的線程,這些線程可以共享進程的資源,如全局變量,句柄等;
- 線程函數定義:DWORD WINAPI ThreadProcess(LPVOID lpParam);
- `WINAPI 宏名,在windef.h有聲明 #define WINAPI __stdcall;__stdcall為新標準C++/C函數調用方法,采用自動清棧;
- 凡是由系統調用的函數必須定義為__stdcall類型,需要顯示說明,否則為_cdecl類型。
- 線程創建函數:
- HANDLE CreateThread(
- LPSECURITY_ATTRIBUTES lpThreadAttributes,
- DWORD dwStackSize,
- LPTHREAD_START_ROUTINE lpStartAddress,
- LPVOID lpParameter,
- DWORD dwCreationFlage,指定為零,線程創建后立即啟動;為CREATE_SUSPENDED時,ResumeThread函數啟動。
- DWORD* lpThreadId);
-
#include<windows.h>
#include<iostream> -
using namespace std;
DWORD WINAPI ThreadProcess(LPVOID lpParam)
{
?? ?int i = 0;
?? ?for (i; i < 100; i++)
?? ??? ?cout << "測試" << i << endl;
?? ?return 0;
}
int main()
{
?? ?DWORD ThreadId;
?? ?HANDLE hThread= ::CreateThread
?? ?(
?? ??? ?NULL,
?? ??? ?NULL,
?? ??? ?ThreadProcess,
?? ??? ?NULL,
?? ??? ?0,
?? ??? ?&ThreadId
?? ?); -
?? ?Sleep(20);
?? ?cout << "結果id=" << ThreadId<< endl;?? ?::WaitForSingleObject(hThread, INFINITE);
?? ?::CloseHandle(hThread);
?? ?return 0;
} - 函數:WaitForSingleObject(hThread, INFINITE);
- 等待指定對象變為授信狀態;
- INFINITE:指定函數等待的時間;
總結
以上是生活随笔為你收集整理的Win32程序执行单元-多线程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Leetcode--215. 数组中第K
- 下一篇: 域名,ip,mac地址