c++写一个进程消费
以下是一个用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来判断是否有数据可消费。当队列中有数据时,消费者从队列中取出数据并打印
原文地址: https://www.cveoy.top/t/topic/hU1Y 著作权归作者所有。请勿转载和采集!