您的位置:首页 > 编程语言 > C语言/C++

c++实现多线程之小试牛刀

2010-08-16 22:01 246 查看
#include <cstdlib>
#include <iostream>
#include <windows.h>

using namespace std;
CRITICAL_SECTION cs;
int a=0;
DWORD WINAPI ThreadFuncA(LPVOID lp)
{
while(a<100)
{
EnterCriticalSection( & cs);
cout<<"ThreadA a = "<<a<<endl;
a++;

LeaveCriticalSection( & cs);
Sleep(200);
}
return 0;
}

DWORD WINAPI ThreadFuncB(LPVOID lp)
{
while(a<100)
{
EnterCriticalSection( & cs);
cout<<"ThreadB a = "<<a<<endl;
a++;
LeaveCriticalSection( & cs);
Sleep(200);
}
return 0;
}

int main(int argc, char *argv[])
{
InitializeCriticalSection( & cs);

HANDLE Thread[2];

Thread[0]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ThreadFuncA,NULL,0,NULL);
Thread[1]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ThreadFuncB,NULL,0,NULL);

WaitForMultipleObjects(2,Thread,TRUE,100000);
DeleteCriticalSection( & cs);
CloseHandle (Thread);

system("PAUSE");
return EXIT_SUCCESS;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: