多线程
一个简单的多线程程序
#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; }