多线程

一个简单的多线程程序

#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;
}
posted @ 2012-02-04 12:15  哈哈开心  阅读(1540)  评论(1)    收藏  举报