#include "stdafx.h"
#include <iostream>
using namespace std;
#include "windows.h"
int index = 0;
int tickets = 100;
HANDLE hMutex = NULL; //互斥
HANDLE hEvent = NULL; //事件
CRITICAL_SECTION g_cs ; //临界区
DWORD WINAPI Func1(LPVOID pParam)
{
while(true)
{
// WaitForSingleObject(hMutex, INFINITE);
WaitForSingleObject(hEvent,INFINITE);
// EnterCriticalSection(&g_cs);
if(tickets> 0)
{
Sleep(1);
cout<<"thread1 sell tickets:"<<tickets--<<endl;
}
else
break;
// ReleaseMutex(hMutex);
SetEvent(hEvent);
// LeaveCriticalSection(&g_cs);
}
return 0;
}
DWORD WINAPI Func2(LPVOID pParam)
{
while(true)
{
// WaitForSingleObject(hMutex,INFINITE);
WaitForSingleObject(hEvent,INFINITE);
// EnterCriticalSection(&g_cs);
if(tickets> 0)
{
Sleep(1);
cout<<"thread2 sell tickets:"<<tickets--<<endl;
}
else
break;
// ReleaseMutex(hMutex);
SetEvent(hEvent);
// LeaveCriticalSection(&g_cs);
}
return 0;
}
void main()
{
HANDLE hThread1 =CreateThread(NULL, 0, Func1, NULL, 0, NULL);
HANDLE hThread2 =CreateThread(NULL, 0, Func2, NULL, 0, NULL);
CloseHandle(hThread1);
CloseHandle(hThread2);
//hMutex = CreateMutex(NULL,FALSE,NULL);
hEvent =CreateEvent(NULL, FALSE, TRUE,NULL);
//InitializeCriticalSection(&g_cs);
Sleep(4000);
//DeleteCriticalSection(&g_cs);
}
C++进程间通信(常用理解例子)-买票的更多相关文章
-
你好,C++(37)上车的人请买票!6.3.3 用虚函数实现多态
6.3.3 用虚函数实现多态 在理解了面向对象的继承机制之后,我们知道了在大多数情况下派生类是基类的“一种”,就像“学生”是“人”类中的一种一样.既然“学生”是“人”的一种,那么在使用“人”这个概念 ...
-
FZU 2029 买票问题 树状数组+STL
题目链接:买票问题 思路:优先队列维护忍耐度最低的人在队首,leave操作ok. vis数组记录从1到n的编号的人们是不是在队列中,top维护队首的人的编号.pop操作搞定. 然后,check操作就是 ...
-
java多线程编程(3)买票
1,买票非同步版本 http://www.cnblogs.com/anbylau2130/archive/2013/04/17/3025347.html很详细 public class 多线程2 { ...
-
Java 数量为5的线程池同时运行5个窗口买票,每隔一秒钟卖一张票
/** * 1.创建线程数量为5的线程池 * 2.同时运行5个买票窗口 * 3.总票数为100,每隔一秒钟卖一张票 * @author Administrator * */ public class ...
-
杭电1133 排队买票 catalan
Buy the Ticket Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
-
poj 2828 Buy Tickets 【买票插队找位置 输出最后的位置序列+线段树】
题目地址:http://poj.org/problem?id=2828 Sample Input 4 0 77 1 51 1 33 2 69 4 0 20523 1 19243 1 3890 0 31 ...
-
JDOJ 1928: 排队买票
JDOJ 1928: 排队买票 JDOJ传送门 Description 一场演唱会即将举行.现有n个歌迷排队买票,一个人买一张,而售票处规定,一个人每次最多只能买两张票.假设第i位歌迷买一张票需要时间 ...
-
java 多线程之synchronized wait/notify解决买票问题
一.Java线程具有五中基本状态 新建状态(New):当线程对象对创建后,即进入了新建状态,如:Thread t = new MyThread(); 就绪状态(Runnable):当调用线程对象的st ...
-
python8.4景区买票
from threading import Threadimport threadinglock=threading.Lock()num=100#定义买票方法def sale(name): lock. ...
随机推荐
-
Collection集合
一些关于集合内部算法可以查阅这篇文章<容器类总结>. (Abstract+) Collection 子类:List,Queue,Set 增: add(E):boolean addAll(C ...
-
nodejs学习笔记一
一.node版本的更新命令 node有一个模块叫n,是专门用来管理node.js的版本的. 首先安装n模块: npm install -g n 第二步: 升级node.js到最新稳定版 n stabl ...
-
Dynamics AX 2012 R2 安装额外的AOS
众所周知,AX系统分为三层:Client,Application Server,Database Server. 我们添加额外的Application Server主要是出于以下两个原因: 使用多台服 ...
-
bzoj2154(莫比乌斯反演)
又是一道经典题. 1.学习了下O(n) 的做法. // // main.cpp // bzoj2154 // // Created by New_Life on 16/7/7. // Copyrigh ...
-
Ural1076(km算法)
题目大意 给出n*n表格,第a[i,j]表示i到j的权值,现在我们要将每个a[i,j]=sum[j]-a[i,j], 求出当前二分图a[][]最小匹配 最小匹配只需将权值取负后,求二分图最大匹配,使用 ...
-
yum kvm
---恢复内容开始--- 1. 安装软件包: yum -y install virt-manager; yum install qemu-kvm yum install libvirt yum ...
-
HelloX项目github协同开发指南
概述 为了提高协同开发效率,HelloX项目已托管到github网站上.根据目前的开发进展,创建了下列几个子项目: HelloX操作系统内核项目:https://github.com/hellox-p ...
-
ZOJ - 3822 Domination (DP)
Edward is the headmaster of Marjar University. He is enthusiastic about chess and often plays chess ...
-
windows下修改apache并发数
还没有尝试 修改apache的最大连接数,方法如下: 步骤一 先修改 /path/apache/conf/httpd.conf文件. # vi httpd.conf 将“#Include conf/e ...
-
ip地址扫描
自己写的一个ip地址扫描脚本,功能是输入ip地址和掩码,通过ping检测整个网段的ip地址,输出ping的结果. 主要的几个函数如下: 1.ip地址转化为数值,方便计算 ip2num() { ip=$ ...