美文网首页
C++生产者消费者

C++生产者消费者

作者: g0 | 来源:发表于2018-10-16 09:22 被阅读16次
// Dexic.cpp: 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <Windows.h>
#include <mutex>    
#include <condition_variable>
#include <deque>
#include <iostream>
using namespace std;

std::condition_variable QueueNotFull;
std::condition_variable QueueNotEmpty;
std::mutex QueueMutex;
std::deque<int> Que;
const int MaxSize = 10;

bool isEmpty() {
    return Que.empty();
}

bool isFull() {
    return Que.size() == MaxSize;
}

void dataPut(int element) {
    std::unique_lock<std::mutex> locker(QueueMutex);
    while (isFull() )
    {
        cout << "Queue is Full !!" << endl;
        QueueNotFull.wait(locker);

    }
    Que.push_back(element);
    QueueNotEmpty.notify_all();
}
int dataGet() {
    std::unique_lock<std::mutex> locker(QueueMutex);
    while (isEmpty())
    {
        cout << "Queue is Empty !!" << endl;
        QueueNotEmpty.wait(locker);
        Sleep(1000);
    }
    int t = Que.front();
    Que.pop_front();
    QueueNotFull.notify_all();
    return t;


}

void getFunc() {
    while (1) {
        int var;
        var = dataGet();
        cout << "Get data :" << var << endl;
        Sleep(1000);

    }
}

void putFunc() {
    //srand((unsigned int)time(0));
    int i = 0;
    while (i < 100) {
        dataPut(i++);
        //int var = rand() % 100;
        //dataPut(var);

    }
}

int main(int arc, char** argv)
{
    cout << "Hello World" << endl;
    std::thread td1(getFunc);
    std::thread td2(putFunc);
    td1.join();
    td2.join();
    return 0;
}



image.png

相关文章

  • Android C++生产者与消费者简易Demo

    1. C++生产者与消费者 在了解生产者与消费者之前,我们先来看看 C++ 关于线程的一些基本知识: 线程锁 pt...

  • 生产者消费者模型

    - 实现c++的生产者消费者模型 互斥锁+条件变量 - java中的实现方式 Wait + notify

  • Dubbo起步

    目录 定义接口 生产者生产者依赖生产者实现 消费者消费者依赖消费者实现 初步印象 定义接口 生产者 生产者依赖 生...

  • 生产者消费者(一)

    生产者消费者模型: 生产者------> 缓存<-------- 消费者

  • 生产者和消费者问题

    生产者和消费者问题 问题简述 组成 系统中有一组生产者和消费者进程 生产者生产者将产品放入缓冲区 消费者消费者进程...

  • 9. python多进程之Queue实现生产者消费者模型

    一、概述 什么是生产者消费者模式生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此...

  • 生产者消费者

    什么是生产者和消费者 生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。 生产者和消费者彼此之间不直...

  • java生产者消费者实现

    什么是生产者消费者模式 生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直...

  • 生产者消费者模式-java原生、Disruptor实现方案

    生产者消费者模式介绍 生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接...

  • Java实现生产者-消费者模型的几种方法

    什么是生产者消费者模式 生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直...

网友评论

      本文标题:C++生产者消费者

      本文链接:https://www.haomeiwen.com/subject/ioyczftx.html