多线程

一个简单的多线程程序

#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;

}

你可能感兴趣的:(多线程)