#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++进程间通信(常用理解例子)-买票的更多相关文章

  1. 你好,C++(37)上车的人请买票!6.3.3 用虚函数实现多态

    6.3.3  用虚函数实现多态 在理解了面向对象的继承机制之后,我们知道了在大多数情况下派生类是基类的“一种”,就像“学生”是“人”类中的一种一样.既然“学生”是“人”的一种,那么在使用“人”这个概念 ...

  2. FZU 2029 买票问题 树状数组+STL

    题目链接:买票问题 思路:优先队列维护忍耐度最低的人在队首,leave操作ok. vis数组记录从1到n的编号的人们是不是在队列中,top维护队首的人的编号.pop操作搞定. 然后,check操作就是 ...

  3. java多线程编程(3)买票

    1,买票非同步版本 http://www.cnblogs.com/anbylau2130/archive/2013/04/17/3025347.html很详细 public class 多线程2 { ...

  4. Java 数量为5的线程池同时运行5个窗口买票,每隔一秒钟卖一张票

    /** * 1.创建线程数量为5的线程池 * 2.同时运行5个买票窗口 * 3.总票数为100,每隔一秒钟卖一张票 * @author Administrator * */ public class ...

  5. 杭电1133 排队买票 catalan

    Buy the Ticket Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)To ...

  6. 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 ...

  7. JDOJ 1928: 排队买票

    JDOJ 1928: 排队买票 JDOJ传送门 Description 一场演唱会即将举行.现有n个歌迷排队买票,一个人买一张,而售票处规定,一个人每次最多只能买两张票.假设第i位歌迷买一张票需要时间 ...

  8. java 多线程之synchronized wait/notify解决买票问题

    一.Java线程具有五中基本状态 新建状态(New):当线程对象对创建后,即进入了新建状态,如:Thread t = new MyThread(); 就绪状态(Runnable):当调用线程对象的st ...

  9. python8.4景区买票

    from threading import Threadimport threadinglock=threading.Lock()num=100#定义买票方法def sale(name): lock. ...

随机推荐

  1. Javascript DOM编程艺术JS代码

    //com function addLoadEvent (func) { var oldonload = window.onload; if (typeof window.onload != 'fun ...

  2. CATCell <——>CATPoint

    假定原先有CATCell tCell; CATVertex_var spVertex = tCell; CATPoint_var spPoint = spVertex -> GetPoint() ...

  3. 《C++ Primer Plus 6th》读书笔记 - 第十一章 使用类

    1. 运算符重载 2. 计算时间:一个运算符重载示例 3. 友元 1. 友元有三种: 友元函数 友元类 友元成员函数 4. 重载运算符:作为成员函数还是非成员函数 5. 再谈重载:一个矢量类 6. 类 ...

  4. 在配置WCF服务的时候出现的错误总结

    1.由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本,请添加处理程序.如果应下载文件,请添加 MIME 映射. 我是通过安装图中的FramWork3.5.1搞定的. 网上的其他参考: http ...

  5. How can I get the logical valume by the datafile names and ASM disks?

    Q:We use asmlib to create ASM disk in Oracle rac 11.2.0.3, and how can I get the logical valume by t ...

  6. rowid的作用

    一.快速删除重复的记录的方法: 1.通过创建临时表删除重复的的记录 1)创建emp表的临时表,把数据导入临时表中,删除原来的表中的数据然后把临时表中的数据导入原表 create table emp_t ...

  7. Elevator(hdoj 1008)

    Problem Description The highest building in our city has only one elevator. A request list is made u ...

  8. Apache+php+mysql win7 64位安装的几个注意事项

    网上一堆安装教程,所以不赘述具体安装过程,只说注意事项.新手推荐phpstudy 如果想单个安装,那么以下是我两三年内多次在win winserver环境下配置Apache环境的一点注意事项,下载连接 ...

  9. 隐私模式启动IE 谷歌浏览器

    C:\Program Files (x86)\Internet Explorer\iexplore.exe -privateC:\Program Files (x86)\Google\Chrome\A ...

  10. aliCloud基于RAMService实现跨账户资源访问

    1,aliCloud基于RAM service实现跨账户ECS资源访问Example 主要的资源为Instance,Image,Snapshot,disk,SecurityGroup Action太多 ...