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

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

 

你可能感兴趣的:(thread,多线程,C++,null,include,winapi)