vc实现的 生成者,消费者问题
2011-06-17 16:26
369 查看
vc实现的 生成者,消费者问题
// Demo_MultiThread.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include<stdio.h> #include<iostream> #include<windows.h> #include<process.h> #include<stdlib.h> #include<Winbase.h> using namespace std; unsigned _stdcall ThreadProducer(void *pArgement); unsigned _stdcall ThreadProducer2(void *pArgement); unsigned _stdcall ThreadConsumer(void *pArgement); CRITICAL_SECTION cs; int iArriay[5]; static int bJudge=1; int main() { unsigned long hThreadProducer,hThreadProducer2,hThreadConsumer; InitializeCriticalSection(&cs); hThreadProducer=_beginthreadex(NULL,0,&ThreadProducer,NULL,0,NULL); hThreadProducer2=_beginthreadex(NULL,0,&ThreadProducer2,NULL,0,NULL); hThreadConsumer=_beginthreadex(NULL,0,&ThreadConsumer,NULL,0,NULL); WaitForSingleObject((void *)hThreadProducer,INFINITE); WaitForSingleObject((void *)hThreadConsumer,INFINITE); WaitForSingleObject((void *)hThreadProducer2,INFINITE); DeleteCriticalSection(&cs); return 0; } unsigned _stdcall ThreadProducer(void *pArgement) { while(1) { EnterCriticalSection(&cs); bJudge ++; cout<<"生成者1====" << bJudge<< endl; LeaveCriticalSection(&cs); Sleep(500); } return 0; } unsigned _stdcall ThreadConsumer(void *pArgement) { FILE *fFile; while(1) { EnterCriticalSection(&cs); std::string info = "消费者==="; if(bJudge <=0) { cout << "消费者不消费了=========="<< bJudge<<endl; LeaveCriticalSection(&cs); } else { bJudge--; char buf[10]; itoa(bJudge,buf,10); info += buf; fopen_s(&fFile,"f://1.txt","at+"); fprintf(fFile,"%s/r/n",info.c_str()); fclose(fFile); cout << "消费者========="<< bJudge<< endl; Sleep(20); } LeaveCriticalSection(&cs); Sleep(100); } } unsigned _stdcall ThreadProducer2(void *pArgement) { while(1) { EnterCriticalSection(&cs); bJudge ++; cout<<"生成者2====" << bJudge<< endl; LeaveCriticalSection(&cs); Sleep(500); } return 0; }
相关文章推荐
- 生产者消费者问题VC实现
- 用vc实现生产者消费者问题
- 生产者消费者问题VC语言实现
- 用vc实现生产者消费者问题
- 用vc实现生产者消费者问题(转载)
- 用vc实现生产者消费者问题
- Java实现生产者消费者问题与读者写者问题
- 用Java实现 生产者/消费者问题
- 生产者/消费者问题的多种Java实现方式
- 生产者、消费者问题,python实现
- java实现的生产者和消费者问题-涉及线程同步与通信
- java实现生产者消费者问题
- JAVA多线程经典问题 -- 生产者 消费者 同步队列实现方法
- ReentrantLock Condition 实现消费者生产者问题
- 关于网宿厦门研发中心笔试的一道PV操作题:利用java中的多线程实现生产者与消费者的同步问题
- 用java代码实现生产者和消费者的问题
- linux下实现生产者-消费者问题
- 生产者消费者问题(实现)
- 多线程经典案例——生产者/消费者问题的Java实现与详解
- 编程实现生产者消费者问题