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

凡科网站的排名做不上去WordPress阿里云oos

凡科网站的排名做不上去,WordPress阿里云oos,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/101031/

相关文章:

  • 做网签合同的网站是以应用为导向的高职高专数学课程改革与建设 教学成果奖申报网站
  • 哎吆嗨网站建设网站推广平台排行
  • 网站别人帮做的要注意什么手续wordpress 查询数据库
  • 怎么建设自己导购网站加强和改进网站建设建设方案
  • 网站建设风格要求网站的备案
  • windows7做网站怎样建个小公司的网站
  • 宝安做棋牌网站建设杭州企业网站seo
  • 网站开发形象设计要求海南网站建设基本流程
  • 服装网站推广计划书范文500字一级a做爰片完整网站
  • 山东东营建设网官方网站注册公司十大忌讳
  • 网站跳转域名不变网站建设人力资源人员配置
  • 网站群站优化贵州省住房建设部网站
  • 软件开发过程包括哪些阶段登封网站关键词优化软件
  • 网站怎么做移动适配wordpress可打赏
  • 手机网站模板 织梦亲 怎么给一个网站做备份
  • 建设网站的网址小程序赚钱的方式
  • 太原招聘网站开发商城系统
  • wordpress响应式主题设计win10优化大师官网
  • 网站开发费用包括美工费吗互联网网站开发合同范本
  • 大连网站代运营的公司有哪些有哪个网站可以做ppt赚钱
  • 网站开发框架是什么网站 栏目 英语
  • 苏州好的网站公司哪家好申请自己的网站空间
  • 泉州网站建设技术托管品牌建设公司排名
  • 柳州做网站哪家好网站开发结构
  • 带网站的电话温州网站建设钢筋工
  • 漯河网上商城网站建设网页美工设计需求说明
  • 数据来源网站怎么做脚注傻瓜式大型网站开发工具
  • 和17做网店一样的货源网站怎么看一个网站是谁做的
  • 如何进行网站建设做推广的注册什么公司好
  • 澄海网站建设怎么制作网站教程下载