WINAPI--多线程与互斥锁(销票系统)

Posted C语言编程实例

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WINAPI--多线程与互斥锁(销票系统)相关的知识,希望对你有一定的参考价值。

WINAPI--多线程与互斥锁(销票系统)


WINAPI--多线程与互斥锁(销票系统)

WINAPI--多线程与互斥锁(销票系统)

//WINAPI--多线程与互斥锁(销票系统)

//讲课老师:蔡苏北 


#include <stdio.h>

#include <windows.h> 


int tickets = 20; //20张车票

HANDLE hMutex = NULL;//互斥锁

//分两个窗口进行售票,一个是普通窗口,一个是VIP窗口

//VIP窗口

DWORD WINAPI VIPWin(LPVOID lpParam)

{

while(1)

{

WaitForSingleObject(hMutex, INFINITE);//等候获取互斥锁

if(tickets > 0) //只要票数大于零

{

Sleep(500); //临时外出

printf("VIP窗口售出第%d张票! ", tickets--);

}

else

break; //没有票了,就关闭该窗口

// Sleep(200); //VIP窗口每200毫秒可以售出一张票

ReleaseMutex(hMutex); //释放互斥锁

}

}



int main( void )

{

//为了让两个窗口实现同时卖票,所以要使用多线程技术

HANDLE hThread = NULL;

//创建互斥锁

//  初始时没有所有者

hMutex = CreateMutex(NULL, FALSE, NULL);

//参数:1.默认安全属性 2.默认栈大小 3.线程处理函数 4.处理函数的参数 5.立即执行 6.匿名线程

hThread = CreateThread(NULL, 0, VIPWin, NULL, 0, NULL);

//普通窗口

while(1)

{

WaitForSingleObject(hMutex, INFINITE);//等候获取互斥锁

if(tickets > 0) //只要票数大于零

{

Sleep(500); //普通窗口每500毫秒可以售出一张票

printf("普通窗口售出第%d张票! ", tickets--);

}

else

break; //没有票了,就关闭该窗口

ReleaseMutex(hMutex); //释放互斥锁

}

return 0;

}


WINAPI--多线程与互斥锁(销票系统)

WINAPI--多线程与互斥锁(销票系统)


上面的学习大纲,相信大家都很想学会项目开发,也是找工作的根本。

WINAPI--多线程与互斥锁(销票系统)           

投资学习是终身授益的,伴随你一生的技术,相信自己技术能改变你一生的命运。想参与系统学习班大团队的同学切勿错过,咨询或办理入学手续请联系:

QQ:208824435  

手机号码:13533554033  


WINAPI--多线程与互斥锁(销票系统)


WINAPI--多线程与互斥锁(销票系统)

扫一扫关注 天天分享源码

长按,识别二维码,加关注


以上是关于WINAPI--多线程与互斥锁(销票系统)的主要内容,如果未能解决你的问题,请参考以下文章

多线程与互斥锁

如何在c中正确同步多线程与互斥锁?

11.python并发入门(part3 多线程与互斥锁)

Linux系统编程-(pthread)线程通信(互斥锁)

Linux:详解多线程(线程安全互斥和死锁)

多线程与互斥锁