编制生产者进程,首先产生一个随机数并写入缓冲区,其次把该缓冲区标准置满c++代码
时间: 2024-12-20 11:14:28 浏览: 5
在C++中,你可以使用`<iostream>`、`<thread>`以及`<cstdlib>`库来创建一个简单的生产者进程,生成随机数并将其放入缓冲区。以下是一个基础示例:
```cpp
#include <iostream>
#include <thread>
#include <random> // 需要随机数库
#include <queue> // 使用队列作为缓冲区
// 定义缓冲区大小
#define BUFFER_SIZE 10
std::queue<int> buffer; // 创建一个整型队列作为缓冲区
std::mt19937 generator(std::chrono::system_clock::now().time_since_epoch().count()); // Mersenne Twister随机数引擎
void producer() {
for (int i = 0; i < BUFFER_SIZE; ++i) {
int random_num = std::rand(generator); // 生成随机数(这里假设你想要的是Mersenne Twister风格的随机数)
buffer.push(random_num);
std::cout << "Produced number: " << random_num << std::endl;
// 等待一会儿以模拟生产过程
std::this_thread::sleep_for(std::chrono::milliseconds(500));
}
}
int main() {
std::thread producer_thread(producer); // 创建生产者线程
producer_thread.join(); // 等待生产者线程结束
return 0;
}
```
这个例子中,`producer`函数是一个单独的线程,它不断产生随机数并将它们推入缓冲区。`main`函数启动了生产者线程并等待其完成。
阅读全文