windows多线程没那么难
再大的困难也难不
#include <windows.h>
#include <stdio.h>static int number=20;DWORD WINAPI ThreadOne(LPVOID lpParameter)
{while(1){if(number>0){printf("窗体1售出第%d张票...\n",number);Sleep(1000);number--;}}return 0;
}
DWORD WINAPI ThreadTwo(LPVOID lpParameter)
{while(1){if(number>0){printf("窗体2售出第%d张票...\n",number);Sleep(1000);number--;}}return 0;
}int main()
{HANDLE HOne,HTwo;printf("***********************vpoet******************\n");HOne=CreateThread(NULL,0,ThreadOne,NULL,0,NULL);printf("窗体1售票開始:\n");HTwo=CreateThread(NULL,0,ThreadTwo,NULL,0,NULL);printf("窗体2售票開始:\n");CloseHandle(HOne);CloseHandle(HTwo);while(TRUE){if(number==0){printf("MainThread Over!\n");return 0;}else{continue;} }return 0;
}
执行结果:
以下主要介绍临界区对象进行线程同步:
#include <windows.h>
#include <stdio.h>static int number=10;
CRITICAL_SECTION Section;DWORD WINAPI ThreadOne(LPVOID lpParameter)
{while(1){EnterCriticalSection(&Section);if(number>0){printf("窗体1售出第%d张票...\n",number);number--;Sleep(1000); }LeaveCriticalSection(&Section);}return 0;
}
DWORD WINAPI ThreadTwo(LPVOID lpParameter)
{while(1){EnterCriticalSection(&Section);if(number>0){printf("窗体2售出第%d张票...\n",number);Sleep(1000);number--;}LeaveCriticalSection(&Section);}return 0;
}int main()
{HANDLE HOne,HTwo;InitializeCriticalSection(&Section);printf("***********************vpoet******************\n");HOne=CreateThread(NULL,0,ThreadOne,NULL,0,NULL);printf("窗体1售票開始:\n");HTwo=CreateThread(NULL,0,ThreadTwo,NULL,0,NULL);printf("窗体2售票開始:\n");CloseHandle(HOne);CloseHandle(HTwo);while(TRUE){if(number==0){printf("不好意思,票卖完了!\n");DeleteCriticalSection(&Section);return 0;}else{continue;} }return 0;
}
执行结果例如以下:
转载于:https://www.cnblogs.com/claireyuancy/p/6895012.html
windows多线程没那么难相关推荐
- 职场5年经验的工程师论述linux真没那么难
2019独角兽企业重金招聘Python工程师标准>>> 职场5年经验的工程师论述linux真没那么难 在当前IT界爆炸的时代,不人少人转向了这一行业,尤其是当前大数据,人工智能的流行 ...
- 《零基础看得懂的C语言入门教程 》——(二)C语言没那么难简单开发带你了解流程
一.学习目标 了解DevC集成开发环境 了解集成开发环境 了解HelloWorld程序 了解HelloWorld程序的编写方法 目录 C语言真的很难吗?那是你没看这张图,化整为零轻松学习C语言. 第一 ...
- 在疫情震中,哥大AI博士回顾五年CV研究生涯:没那么简单,没那么难...
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨Showthem@知乎(已授权) 编辑丨AI科技评论 「开始写这边总结的时候是三月,纽约成了疫情 ...
- Solidworks安装失败,出现内部错误:该产品组件的windows installer没按预期运
安装中注意有两个雷,建议在安装之前就做以下操作!!防止报错了再返工浪费时间.. 第1个是安装时出现以下错误: 这个表示之前其他软件装过Microsoft C++ xxxx Redistributabl ...
- Windows多线程编程总结
Windows 多线程编程总结 keyword:多线程 线程同步 线程池 内核对象 1 内核对象 1 .1 内核对象的概念 内核对象是内核分配的一个内存块,这样的内存块是一个数据结构,表示内核对象的各 ...
- windows多线程同步--临界区
推荐参考博客:秒杀多线程第五篇 经典线程同步 关键段CS 关于临界区的观念,一般操作系统书上面都有. 适用范围:它只能同步一个进程中的线程,不能跨进程同步.一般用它来做单个进程内的代码快同步,效率比较 ...
- sr锁存器 数电_数电课设其实也没那么难2.1
1 引言 如上就是 课题二.数字式抢答器 课题三.多路彩灯控制器 相比天天在路口见的红绿灯 这俩题可能抽象了一点 我自己是课题三 做的时候发现 这题还真不是最简单的一个... 一步一步来吧 数电并不是 ...
- O2O防刷单并没那么难,看完这个你也会反作弊了
前几日传出滴滴快的联合京沪警方打击刷单,什么情况?刷单都到了需要动用警力的地步了?有实力补贴没能力防刷? 今天就要八一八刷单那些事儿,看清楚这里不是传授刷单秘籍,也不是xx天xxx万的运营干货,从产品 ...
- windows多线程同步互斥--总结
2019独角兽企业重金招聘Python工程师标准>>> 秒杀多线程面试题系列 参考JustDoIT -- 大部分内容 <Windows核心编程>线程同步对象速查表 对象 ...
- 学会使用楼宇控制系统BACnet网关没那么难
其实有依然有很多用户(可能是接触不久时间关系,又或者是术业有专攻的关系)对网关的定义不明确.我见过太多用户拿着一个不知道什么参数的参数来问要网关, 我说要什么协议的,却一头雾水.网关说白了就是个协议转 ...
最新文章
- GS01创建信息集及其他GROUP在ABAP程序中的调用方法
- NIO和BIO如何影响应用程序的设计
- 微软私有云分享(R2)16PowerShell查看虚拟机信息
- 中间件静态文件服务器,从koa-static中间件学习搭建静态文件服务器
- ubuntu16.04下安装配置caffe2和detectron(亲测有效,非常简单)
- 高手也不好当,压力更大
- 安拆网:脚手架钢管规格及施工要求
- C#Winform预览PDF
- 怎样任意裁剪图片?如何快速改变图片形状?
- python的list的基本操作、list循环、切片、字典基本操作、字典嵌套、字符串常用方法...
- android 屏幕分辨率获取,Android获取屏幕分辨率的三种方法
- 构建自己的Linux 之三 初步完善(提供网络功能等)
- 【 MATLAB 】gca 介绍(当前轴或图表)
- 神经网络处理表格数据,神经网络如何识别图像
- web工程的权限管理
- PHICH介绍(1)
- “四大发明”活字印刷当排首位!
- 如何使用Endnote修改参考文献格式,自定义参考文献样式
- 新能源行业供应链管理平台构建一站式新能源供应链交易闭环
- 226款H5手机端小游戏源码下载 - HTML+JavaScript开发的网页小游戏开源源码大合集,经过亲测可用!