1 / 4
文档名称:

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

格式:docx   大小:71KB   页数:4页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

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

上传人:63229029 2017/9/25 文件大小:71 KB

下载得到文件列表

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

相关文档

文档介绍

文档介绍:c++多线程多窗口买票实例源码
说明:本用例是在VS2010(中文版) 环境下进行。(英文版的创建过程与此相同)
项目创建流程(只供参考):文件à 新建à Visual C++ à Win32 项目à
输入项目名(Thread_Tickets) à确定à 下一步à 选择控制台应用程序à 完成
项目源码
// : 定义控制台应用程序的入口点。
//头文件和公共资源
#include""
#include <iostream>
#include <>
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 (tickets>0)
{
Sleep(10);
cout<<"1号窗口卖出--"<<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
//cout<<"Thread1_Level:"<<GetThreadPriority(Thread1)<<endl;
//修改Thread1的线程等级为最高
//SetThreadPriority(Threadl,THREAD_PRIORITY_IDLE);
//cout<<"Thread1_Level:"<<GetThreadPriority(Thread1)<<endl;//15
//ResumeThread(Thread1),//恢复挂起的线程Thread1
//TerminateThread(Thread