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

做的最好的快餐网站wordpress社团网站

做的最好的快餐网站,wordpress社团网站,财务系统,网站建设算什么行业生产者-消费者模型是一种典型的多线程并发模式#xff0c;常用于在一个共享缓冲区中协调生产者和消费者之间的数据传递。在C中#xff0c;我们可以使用标准库中的线程、互斥量和条件变量来实现该模型。以下是一个简单的生产者-消费者模型的实现示例#xff1a; #include 常用于在一个共享缓冲区中协调生产者和消费者之间的数据传递。在C中我们可以使用标准库中的线程、互斥量和条件变量来实现该模型。以下是一个简单的生产者-消费者模型的实现示例 #include iostream #include thread #include mutex #include condition_variable #include queue #include vector// 定义缓冲区容量 const int BUFFER_SIZE 10;// 缓冲区 std::queueint 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_lockstd::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_lockstd::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::vectorstd::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; }代码解析 缓冲区使用std::queueint来模拟缓冲区。互斥量和条件变量使用std::mutex来保护缓冲区的访问权使用两个std::condition_variable来协调生产者和消费者。生产者函数生产者在缓冲区未满时生产数据并通知消费者。有一个循环生产指定数量的项目。消费者函数消费者在缓冲区非空时消费数据并通知生产者。有一个循环消费指定数量的项目。主函数创建多个生产者和消费者线程并等待它们完成。 这个示例展示了如何使用C标准库中的线程、互斥量和条件变量来实现一个基本的生产者-消费者模型。可以根据具体需求调整缓冲区的容量、生产者和消费者的数量以及生产和消费的项目数量。
http://www.eeditor.cn/news/122836/

相关文章:

  • 河北网站建设方案遵义高端网站建设
  • 人和机械网站建设做外贸女装有哪些网站有哪些
  • 提供网站建设公司电话网站开发人员 怎么保存
  • 怎么做自己的一个网站陕西建设厅官方网站
  • 济南做网站比较好的公司国内贸易在那个网站上做
  • 九台网站深圳出行最新通告
  • 建设服装网站目的营销app
  • 专业的网站建设设计wordpress全站广告位
  • 广州做网站的企业wordpress 百科
  • 重庆seo网站推广费用国外的电商网站
  • 青岛网站设计报价获取页面内容wordpress
  • 郴州网站建设制作域名过期做的网站怎么办
  • seo网站关键词优化报价长沙移动网站建设哪家好
  • 搜索引擎作弊网站有哪些大连网站制作的
  • 惠阳网站开发淄博做企业网站哪家好
  • 网站建设推广专家服务二手书籍交易网站开发方式
  • 您的域名因未取得工信部网站备案号wordpress快递主题
  • 网站建设业务拓展思路香奈儿vi设计手册
  • 大寺网站建设公司深圳网站平台哪家强
  • 网站整体设计响应式设计是什么意思
  • 潜山网站建设水果网络营销推广方案
  • 手机刷网站排名软件免费化工网站建设
  • 如何做企业黄页网站网站静态化怎么做
  • 域名购买网站做lol数据的网站有哪些
  • 套别人代码做网站阿里云网站建设模板
  • 唐山公司网站建设做视频的免费素材网站
  • 建设银行网站是什么深圳外贸公司上班工资高吗
  • 医院互联网网站建设网站建设需不需要招标
  • 网站服务费怎么做分录咨询公司起名
  • 湖南省住房与城乡建设厅网站官网做网站必备软件