当前位置: 首页 > news >正文

做网站这么便宜可以吗快速排名程序

做网站这么便宜可以吗,快速排名程序,网站建设规划方案.ppt,wordpress 字符替换插件生产者-消费者模型是一种典型的多线程并发模式,常用于在一个共享缓冲区中协调生产者和消费者之间的数据传递。在C中,我们可以使用标准库中的线程、互斥量和条件变量来实现该模型。以下是一个简单的生产者-消费者模型的实现示例: #include &l…

生产者-消费者模型是一种典型的多线程并发模式,常用于在一个共享缓冲区中协调生产者和消费者之间的数据传递。在C++中,我们可以使用标准库中的线程、互斥量和条件变量来实现该模型。以下是一个简单的生产者-消费者模型的实现示例:

#include <iostream>
#include <thread>
#include <mutex>
#include <condition_variable>
#include <queue>
#include <vector>// 定义缓冲区容量
const int BUFFER_SIZE = 10;// 缓冲区
std::queue<int> buffer;// 互斥量和条件变量
std::mutex mtx;
std::condition_variable cv_producer, cv_consumer;// 生产者函数
void producer(int id, int num_items) {for (int i = 0; i < num_items; ++i) {std::unique_lock<std::mutex> lock(mtx);// 如果缓冲区满了,等待消费者消费cv_producer.wait(lock, [] { return buffer.size() < BUFFER_SIZE; });// 生产一个项目buffer.push(i);std::cout << "Producer " << id << " produced " << i << std::endl;// 通知消费者cv_consumer.notify_one();}
}// 消费者函数
void consumer(int id, int num_items) {for (int i = 0; i < num_items; ++i) {std::unique_lock<std::mutex> lock(mtx);// 如果缓冲区为空,等待生产者生产cv_consumer.wait(lock, [] { return !buffer.empty(); });// 消费一个项目int item = buffer.front();buffer.pop();std::cout << "Consumer " << id << " consumed " << item << std::endl;// 通知生产者cv_producer.notify_one();}
}int main() {const int num_producers = 3;const int num_consumers = 3;const int num_items = 20;// 创建生产者和消费者线程std::vector<std::thread> producers, consumers;for (int i = 0; i < num_producers; ++i) {producers.emplace_back(producer, i, num_items);}for (int i = 0; i < num_consumers; ++i) {consumers.emplace_back(consumer, i, num_items);}// 等待所有线程完成for (auto& p : producers) {p.join();}for (auto& c : consumers) {c.join();}return 0;
}

代码解析

  1. 缓冲区:使用std::queue<int>来模拟缓冲区。
  2. 互斥量和条件变量:使用std::mutex来保护缓冲区的访问权,使用两个std::condition_variable来协调生产者和消费者。
  3. 生产者函数:生产者在缓冲区未满时生产数据,并通知消费者。有一个循环生产指定数量的项目。
  4. 消费者函数:消费者在缓冲区非空时消费数据,并通知生产者。有一个循环消费指定数量的项目。
  5. 主函数:创建多个生产者和消费者线程,并等待它们完成。

这个示例展示了如何使用C++标准库中的线程、互斥量和条件变量来实现一个基本的生产者-消费者模型。可以根据具体需求调整缓冲区的容量、生产者和消费者的数量以及生产和消费的项目数量。

http://www.yayakq.cn/news/361172/

相关文章:

  • 国外做动运服装的网站网站次年续费
  • 建设网站的基本技术设备网站模板
  • 做网站的程序员进什么公司好wordpress 导入工具插件下载
  • 中国建设监理官方网站超详细wordpress
  • 公司网站海报怎么做二次元网站模板
  • 计算机编程与网站建设wordpress ck video
  • 台州建设质量监督网站wordpress更改访问路径
  • 做汽车团购的网站有哪些北京精兴装饰公司
  • 工程建设标准化期刊网站广州网站推广哪家好
  • 南宁网站开发个人网站 商城 备案
  • 大庆市萨尔图区建设局网站百度糯米做网站多少钱
  • 郑州做公司网站的公司韶关建设网站
  • 做营销型网站需要注意哪些点网站模板价格
  • 协会工作方案网站建设困难织梦图片瀑布流网站模板
  • 网站内容优化技巧佳城建站 网站
  • 电子商务网站建设运营做网站必须先买域名吗
  • 视频会议系统直播聊天网站开发wordpress如何做页面模板下载地址
  • 做网站上传资源企业网站建设时优化关键词的问题
  • 互联网网站开发html5深圳宝安seo外包
  • 免费查公司的网站网站大连
  • iis网站佛山购物网站建设
  • wordpress建站打不开二级页面做网站的为什么不给域名和密码
  • 安徽网站公司网站如何选择合肥网络公司
  • 有赞微商城网页版合肥网站快速排名优化
  • 软件工程师分类天津谷歌优化公司
  • 南通网站建设排名公司wordpress怎么编程
  • 如果给公司网站做网络广告公司营业执照注册
  • 推广seo学校培训班
  • 可以做网站的编程有什么设计一个网站多少钱
  • 如何建个人网站视频美食网站设计欣赏