多线程
一个简单的多线程程序
#include <Windows.h>
#include <iostream>
using namespace std;
DWORD WINAPI Fun1Proc(LPVOID lpParameter);
DWORD WINAPI Fun2Proc(LPVOID lpParameter);
DWORD WINAPI Fun3Proc(LPVOID lpParameter);
void main()
{
HANDLE hThread1;
HANDLE hThread2;
HANDLE hThread3;
int parameter2 = 7;
char parameter3[]="string thread3";
DWORD pro3;
hThread1 = CreateThread(NULL,0,Fun1Proc,NULL,0,NULL);
hThread2 = CreateThread(NULL,0,Fun2Proc,(LPVOID)parameter2,0,NULL);
hThread3 = CreateThread(NULL,0,Fun3Proc,(LPVOID)parameter3,0,&pro3);
/*创建线程函数*/
/*函数的第三个参数是新线程入口函数的地址*/
/*第四个参数是LPVOID类型的,用于给入口函数传递参数,可以是值或指针*/
/*第六个参数是一个返回值用来接收线程ID,设为NULL表示不感兴趣*/
Sleep(1000);
cout<<"pro3="<<pro3<<endl;
CloseHandle(hThread1);
CloseHandle(hThread2);
CloseHandle(hThread3);
//当不再使用线程时可以关闭它
cout<<"main thread is running"<<endl;
}
DWORD WINAPI Fun1Proc(LPVOID lpParameter)
{
cout<<"thread1 is running"<<endl;
return 0;
}
DWORD WINAPI Fun2Proc(LPVOID lpParameter)
{
int recvPar = (int)lpParameter;
cout<<"thread2 is running"<<endl;
cout<<"the parameter is "<<recvPar<<endl;
return 0;
}
DWORD WINAPI Fun3Proc(LPVOID lpParameter)
{
char* recvPar = (char*)lpParameter;
cout<<"thread3 is running"<<endl;
cout<<"the parameter is "<<recvPar<<endl;
return 0;
}

浙公网安备 33010602011771号