c多线程多窗口买票实例源码.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c多线程多窗口买票实例源码

c++多线程多窗口买票实例源码说明:本用例是在VS2010(中文版)环境下进行。(英文版的创建过程与此相同)项目创建流程(只供参考):文件新建 Visual C++ Win32 项目输入项目名(Thread_Tickets)确定下一步选择控制台应用程序完成项目源码// Thread_Tickets.cpp : 定义控制台应用程序的入口点。//头文件和公共资源#includestdafx.h#include iostream#include windows.husing namespace std ;HANDLE hMutex;//创建互斥对象全局的所有线程共用一把锁static int tickets=100;//共用资源全局的变量要买的总票数//程启动函数,注意形参为LPVOID 类型typedefviod*LPVOIDDWORD WINAPI Fun1(LPVOID argv){//cout获取线程Thread1的ID :GetCurrentThreadId()\n;//获取线程的IDwhile(TRUE){WaitForSingleObject(hMutex,INFINITE);//获取线程锁如果无权获取则等待CPU资源if (tickets0){Sleep(10);cout1号窗口卖出--tickets-- --号票\n;}elsebreak;//释放锁ReleaseMutex (hMutex);}//ExitThread(0);return 0;//与ExitThread(0);等效。}int _tmain(intarge,_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);//结束线程Thread2hMutex = CreateMutex(NULL,FALSE, NULL);//cout主线程的句柄:GetCurrentThread()\n;//cout获取主线程的ID:GetCurrentThreadId()\n;//获取线程的IDwhile (TRUE){WaitForSingleObject(hMutex,INFINITE);//获取线程锁如果无权获取则等待CPU资源if (tickets0){Sleep(10);coutVIP窗口卖出--tickets-- --号票\n;}elsebreak;//释放锁ReleaseMutex (hMutex);}ReleaseMutex (hMutex);CloseHandle(Thread1);return 0;}执行结果截图按F7编译,Ctrl + F5执行,结果如下:(这里为了截个全屏将源码中static int tickets=20; 读者可根据自己的需求设置大小。)

文档评论(0)

shenlan118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档