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

网站怎么建立数据库不收费的企业查询网站

网站怎么建立数据库,不收费的企业查询网站,永年专业做网站,东莞企业网站价格运行在VS2022,x86,Debug下。 32. 生产者消费者模式 解耦生产者和消费者之间的关系,即生产者和消费者只依赖缓冲区,而不相互依赖。应用:多线程并发编程,可以解决生产者和消费者之间的同步问题。实现 生产者…

运行在VS2022,x86,Debug下。

32. 生产者消费者模式

  • 解耦生产者和消费者之间的关系,即生产者和消费者只依赖缓冲区,而不相互依赖。
  • 应用:多线程并发编程,可以解决生产者和消费者之间的同步问题。
  • 实现
    • 生产者:负责产生数据的模块。
    • 消费者:负责处理数据的模块。
    • 中介:缓冲区。
  • 代码如下。
    lambda表达式在condition_variable::wait()中充当断言。
#include <iostream>
#include <thread>
#include <mutex>
#include <condition_variable>
#include <queue>
#include <vector>
using namespace std;const int BUFFER_SIZE = 10;  //缓冲区大小queue<int> buffer;           //缓冲区, 用于存放数据
mutex mtx;                   //互斥量,用于保护共享资源
condition_variable prod_cv; // 生产者条件变量,用于线程间的同步
condition_variable cons_cv; // 消费者条件变量//生产者
void producer()
{for (int i = 0; i < 20; i++)   //循环生产20个数据{ unique_lock<mutex> lock(mtx);    //独占锁,确保同一时刻只有一个线程访问临界区prod_cv.wait(lock, [] { return buffer.size() < BUFFER_SIZE; });    //等待条件满足,即缓冲区不满buffer.push(i); cout << "Producer ID:" << this_thread::get_id() << " Produced: " << i << std::endl;lock.unlock();            //解锁互斥量cons_cv.notify_all();     //通知消费者this_thread::sleep_for(std::chrono::milliseconds(500)); //睡眠, 模拟生产过程}
}//消费者
void consumer() 
{for (int i = 0; i < 20; i++)   //循环消费20个数据{unique_lock<std::mutex> lock(mtx);cons_cv.wait(lock, [] { return !buffer.empty(); });  //等待条件满足,即缓冲区不为空cout << "Consumer ID:" << this_thread::get_id() << " Consumed: " << buffer.front() << endl;buffer.pop();lock.unlock();prod_cv.notify_all();  //通知生产者this_thread::sleep_for(std::chrono::milliseconds(800));}
}int main()
{const int num_producers = 2;  //生产者数量const int num_consumers = 2;  //消费者数量vector<thread> producer_threads;vector<thread> consumer_threads;for (int i = 0; i < num_producers; i++)   //创建生产者线程producer_threads.emplace_back(producer);for (int i = 0; i < num_consumers; i++)  //创建消费者线程consumer_threads.emplace_back(consumer);for (auto&& thread : producer_threads)  //等待所有生产者线程结束thread.join();for (auto&& thread : consumer_threads)  //等待所有消费者线程结束thread.join();return 0;    
}
http://www.yayakq.cn/news/15270/

相关文章:

  • 网站开发和oa有什么区别雷州市住房和城乡规划建设局网站
  • 彩票网站开发制作需要什么域名对网站seo的影响吗
  • 做韩服的视频网站三字顺口公司名字
  • 网站为什么维护中什么是灰色网站
  • 个人网站开发休闲食品网站模板
  • 在家做十字绣兼职网站wordpress 5 开发
  • 1元涨1000粉丝网站wordpress使用第三方播放器
  • 怎么模板建站电子商务 做网站
  • cms系统做漫画网站企业的外币收入外管局网站做啥
  • 什么网站吸引流量wordpress 推酷
  • 铜陵58同城做网站怎么做自助提卡网站
  • 私人做的不错的网站免费公司网址
  • 开源项目网站怎么做 带视频wordpress文章页获取目录名称
  • 帝国做双语网站wordpress 工业主题
  • 在线房屋设计网站招聘网站开发兼职
  • 个人做网站外包价格如何算电子商务网站建设与维护课程标准
  • 邳州建网站广州公司团建去哪里好
  • 网站开发有哪些框架如何快速提高网站权重
  • 做准考证的网站学网页设计课程
  • 网站域名 邮箱罗湖区住房和建设局官网
  • 网站制作公司深圳购物网站导航素材代码
  • 网站联系我们页面设计专业网站制作团队
  • 合肥专业手机网站哪家好萍乡网站建设萍乡
  • 系统集成销售和网站建设销售网站商城建设合同免费下载
  • 台州做网站是什么网站空间租
  • 写小说的网站自己做封面高校网站群建设研究
  • 做棋牌游戏网站新网互联 网站上传
  • 数据库做网站和做软件有什么不一样wordpress 怎么汉化主题
  • 做pc端网站代理商注册安全工程师
  • 旅游网站模板html5做企业竞争模拟的网站