˜Ëî}: C++„“(chu¨¤ng)½¨¾€³Ì»¥³âŒ¦Ïó [´òÓ¡±¾í“]

×÷Õß: liuyuxi    •rég: 2015-1-11 00:38
˜Ëî}: C++„“(chu¨¤ng)½¨¾€³Ì»¥³âŒ¦Ïó
#include <windows.h>//°üº¬î^Îļþ
#include <stdio.h>




DWORD WINAPI myfun1(//•Ã÷¾€³Ìº¯”µ(sh¨´)
  LPVOID lpParameter   
);
DWORD WINAPI myfun2(
  LPVOID lpParameter   
);
HANDLE hmutex;
int a=0;//¶¨ÁxÈ«¾Ö׃Á¿a
main()
{
  hmutex=::CreateMutex(NULL,FALSE,NULL);//„“(chu¨¤ng)½¨»¥³âŒ¦Ïó²¢·µ»ØÆä¾ä±ú
  HANDLE h1,h2;//¶¨Áx¾€³Ì¾ä±ú
h1=::CreateThread(NULL,0,myfun1,NULL,0,NULL);//„“(chu¨¤ng)½¨¾€³Ì1
printf("¾€³Ì1é_ʼß\ÐУ¡\r\n");
h2=::CreateThread(NULL,0,myfun2,NULL,0,NULL);//„“(chu¨¤ng)½¨¾€³Ì2
printf("¾€³Ì2é_ʼß\ÐУ¡\r\n");
::CloseHandle(h1);//êPé]¾€³Ì¾ä±úŒ¦Ïó
::CloseHandle(h2);
        ::Sleep(100000);//³ÌÐò˯Ãß10Ãë
return 0;


  }


DWORD WINAPI myfun1(LPVOID lpParameter) //¾€³Ìº¯”µ(sh¨´)1
{
   while(1)
   {
   ::WaitForSingleObject(hmutex,INFINITE);//ÕˆÇóʼþŒ¦Ïó
         
   if(a<10000)
          {
     a+=1;//׃Á¿×Ô¼Ó
     ::Sleep(1000);//¾€³Ì˯Ãß1Ãë
             printf("¾€³Ì1£º%d\r\n",a);
      ::ReleaseMutex(hmutex);
//ጷŻ¥³âŒ¦Ïó¾ä±ú
          }
else
{
    ::ReleaseMutex(hmutex);//ጷŻ¥³âŒ¦Ïó¾ä±ú
        break;//Ìø³öÑ­­h(hu¨¢n)
         }


    }


    return 0;//¾€³Ì
}


DWORD WINAPI myfun2(LPVOID lpParameter) //¾€³Ìº¯”µ(sh¨´)2
{
  while(1)
   {
::WaitForSingleObject(hmutex,INFINITE);//ÕˆÇóʼþŒ¦Ïó


//ÔOÖÃʼþŒ¦ÏóžéŸoÐÅÌ– î‘B(t¨¤i)
if(a<10000)
{
     a+=1;
     ::Sleep(1000);
        printf("¾€³Ì2£º%d\r\n",a);//Ý”³ö׃Á¿
        ::ReleaseMutex(hmutex);
//ጷŻ¥³âŒ¦Ïó¾ä±ú
  }
else
{

::ReleaseMutex(hmutex);//ጷŻ¥³âŒ¦Ïó¾ä±ú
    break;
//Ìø³öÑ­­h(hu¨¢n)
   }


    }


    return 0;//¾€³ÌÕý³£Í˳ö
}






šgÓ­¹âÅR (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1