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

想自己做淘宝有什么网站吗天津百度关键词推广公司

想自己做淘宝有什么网站吗,天津百度关键词推广公司,婚庆网站html模板,中国电信商圈经验分享生产者-消费者模型是一种典型的多线程并发模式,常用于在一个共享缓冲区中协调生产者和消费者之间的数据传递。在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.hkea.cn/news/662648/

相关文章:

  • 服务器做网站用什么环境好销售营销方案100例
  • 如何做DJ网站英文seo外链
  • 网站统计源码下载百度推广的步骤
  • 本地网站建设seo推广的方法
  • 东莞好的网站建设效果seo和sem分别是什么
  • 最新版wordpress背景手机网络优化软件
  • 丛台企业做网站推广免费建一级域名网站
  • 集宁网站建设免费网站推广网站破解版
  • 网站建设域名的购买有域名和服务器怎么建网站
  • 深圳有什么网站长沙百度seo
  • 台州企业网站模板建站怎么在百度上做公司网页
  • 烟台网站建设联系企汇互联专业网站维护收费标准
  • 网络客户服务平台搜索优化推广公司
  • 建设网站技术方案线上教育培训机构十大排名
  • 沈阳人流seo优化师就业前景
  • 开发区网站制作公司seo关键词有话要多少钱
  • 网站被篡改处理app拉新平台
  • 在线房屋设计网站seo推广平台服务
  • 电子政务门户网站建设代码短链接生成网址
  • 崔各庄地区网站建设百度非企渠道开户
  • 怎么用自己的电脑做网站服务器产品推广平台排行榜
  • 中国做的比较好的电商网站有哪些哈市今日头条最新
  • 微信怎么做网站推广百度网站优化培训
  • 网站开发支持多个币种电子技术培训机构
  • 移动网站设计与制作怎么找关键词
  • 国内移动端网站做的最好的厦门人才网597人才网
  • 建网站收费吗aso关键词覆盖优化
  • 西安的网站设计与制作首页微信视频号怎么推广引流
  • 顺义公司建站多少钱pc端百度
  • wordpress收费资源下载关键词优化的策略