CreateMutex利用互斥对象实现线程同步示例01

 

#include<windows.h>
#include<iostream.h>
DWORD WINAPI Fun1Proc(LPVOID lpParameter);
DWORD WINAPI Fun2Proc(LPVOID lpParameter);


int index =0 ;
int tickets = 100 ;
HANDLE hMutex;
void main()
{

 HANDLE hThread1,hThread2;
 hThread1 = CreateThread(NULL,0,Fun1Proc,NULL,0,NULL);
 hThread2 = CreateThread(NULL,0,Fun2Proc,NULL,0,NULL);
 CloseHandle(hThread1);
 CloseHandle(hThread2);

 hMutex  = CreateMutex(NULL,FALSE,NULL);
 Sleep(4000);

}

DWORD WINAPI Fun1Proc(LPVOID lpParameter)
{

 while(true)
 {
 
  WaitForSingleObject(hMutex,INFINITE);
  if(tickets>0)
  {
   cout<<"t1:"<<tickets--<<endl;
  }
  else
  {
   break;
  }
  ReleaseMutex(hMutex);
 }
 return 0;
}
DWORD WINAPI Fun2Proc(LPVOID lpParameter)
{
 while(true)
 {
  WaitForSingleObject(hMutex,INFINITE);
  if(tickets>0)
  {
  
   cout<<"t2:"<<tickets--<<endl;
  }
  else
  {
   break;
  }
  ReleaseMutex(hMutex);
 
 }
  return 0;
}

你可能感兴趣的:(null,fun,winapi)