- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c多线程多窗口买票实例源码
c++多线程多窗口买票实例源码
PAGE \* MERGEFORMAT 4
c++多线程多窗口买票实例源码
说明:本用例是在VS2010(中文版) 环境下进行。(英文版的创建过程与此相同)
项目创建流程(只供参考):文件 ? 新建 ? Visual C++ ? Win32 项目 ?
输入项目名(Thread_Tickets) ?确定 ? 下一步 ? 选择控制台应用程序 ? 完成
项目源码
// Thread_Tickets.cpp : 定义控制台应用程序的入口点。
//头文件和公共资源
#includestdafx.h
#include iostream
#include windows.h
using namespace std ;
HANDLE hMutex; //创建互斥对象全局的所有线程共用一把锁
static int tickets=100; //共用资源全局的变量要买的总票数
//程启动函数,注意形参为LPVOID 类型 typedef viod*LPVOID
DWORD WINAPI Fun1(LPVOID argv)
{
//cout获取线程Thread1的ID :GetCurrentThreadId()\n;//获取线程的ID
while(TRUE)
{
WaitForSingleObject(hMutex,INFINITE);//获取线程锁如果无权获取则等待CPU资源
if (tickets0)
{
Sleep(10);
cout1号窗口卖出--tickets-- --号票\n;
}
else
break;
//释放锁
ReleaseMutex (hMutex);
}
//ExitThread(0);
return 0;//与ExitThread(0);等效。
}
int _tmain(int arge,_TCHAR* argv[])
{
DWORD ThreadID; //线程ID
//创建Thread1线程
HANDLE Thread1 = CreateThread(0,0,Fun1,NULL,0,ThreadID);
//SuspendThread(Thread1); //挂起线程Thread1
//输出线程Thread1的默认等级,结果为0
//coutThread1_Level:GetThreadPriority(Thread1)endl;
//修改Thread1的线程等级为最高
//SetThreadPriority(Threadl,THREAD_PRIORITY_IDLE);
//coutThread1_Level:GetThreadPriority(Thread1)endl;//15
//ResumeThread(Thread1),//恢复挂起的线程Thread1
//TerminateThread(Thread1, STILL_ACTIVE);//结束线程Thread2
hMutex = CreateMutex(NULL,FALSE, NULL);
//cout主线程的句柄:GetCurrentThread()\n;
//cout获取主线程的ID:GetCurrentThreadId()\n;//获取线程的ID
while (TRUE)
{
WaitForSingleObject(hMutex,INFINITE);//获取线程锁如果无权获取则等待CPU资源
if (tickets0)
{
Sleep(10);
coutVIP窗口卖出--tickets-- --号票\n;
}
else
break;
//释放锁
ReleaseMutex (hMutex);
}
ReleaseMutex (hMutex);
CloseHandle(Thread1);
return 0;
}
执行结果截图
按F7编译,Ctrl + F5执行,结果如下:
(这里为了截个全屏将源码中static int tickets=20; 读者可根据自己的需求设置大小。)
文档评论(0)