˜Ëî}:
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