以下是一个用C++编写的进程消费的示例代码:

#include <iostream>
#include <queue>
#include <thread>
#include <mutex>
#include <condition_variable>

std::queue<int> dataQueue;
std::mutex mtx;
std::condition_variable cv;

void producer() {
    for (int i = 0; i < 10; ++i) {
        std::this_thread::sleep_for(std::chrono::milliseconds(500));
        std::unique_lock<std::mutex> lock(mtx);
        dataQueue.push(i);
        std::cout << "Produced: " << i << std::endl;
        cv.notify_all();
    }
}

void consumer() {
    while (true) {
        std::unique_lock<std::mutex> lock(mtx);
        cv.wait(lock, []{ return !dataQueue.empty(); });
        int data = dataQueue.front();
        dataQueue.pop();
        std::cout << "Consumed: " << data << std::endl;
        lock.unlock();
    }
}

int main() {
    std::thread producerThread(producer);
    std::thread consumerThread(consumer);
    
    producerThread.join();
    consumerThread.join();
    
    return 0;
}

在这个示例中,dataQueue是一个存储整数的队列,producer函数向队列中生产数据,consumer函数从队列中消费数据。生产者每隔500毫秒生产一个整数,消费者通过等待条件变量cv来判断是否有数据可消费。当队列中有数据时,消费者从队列中取出数据并打印

c++写一个进程消费

原文地址: https://www.cveoy.top/t/topic/hU1Y 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录