tbwshc

tbw

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  95 Posts :: 8 Stories :: 3 Comments :: 0 Trackbacks

常用链接

留言簿(4)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

// MultiThread.cpp : 定义控制台应用程序的入口点。

//

#include "stbdafx.h"
#include <windows.h>
#include <iostream>

using namespace std;
int tickets = 100;
HANDLE hMutex;

DWORD WINAPI Fun1Proc(LPVOID lp);
DWORD WINAPI Fun2Proc(LPVOID lp);

int _tmain(int argc, _TCHAR* argv[])
{
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(2000);
system("pause");
return 0;
}

DWORD WINAPI Fun1Proc(LPVOID lp)
{
while(1)
{
 WaitForSingleObject(hMutex,INFINITE);
 if(tickets > 0)
 {
 Sleep(10);
 cout << "thread1 sell ticket." << tickets-- <<endl;
 }
 else
 break;
 ReleaseMutex(hMutex);
}
return 0;
}

DWORD WINAPI Fun2Proc(LPVOID lp)
{
while(1)
{
 WaitForSingleObject(hMutex,INFINITE);
 if(tickets > 0)
 cout << "thread2 sell ticket." << tickets-- <<endl;
 else
 break;
 ReleaseMutex(hMutex);
}
return 0;
}


 

posted on 2012-07-21 11:57 tbwshc 阅读(1110) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理