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

阿升网站免费学设计淘宝直通车推广怎么做

阿升网站免费学设计,淘宝直通车推广怎么做,手机网站 自适应屏幕,大连网页设计公司目录 1、condition_variable1.1、生产者消费者模型1.2、改变共享变量的线程步骤1.3、等待信号读取共享变量的线程步骤1.3.1、获得改变共享变量线程共同的mutex1.3.2、wait()等待信号通知1.3.2.1、无lambda表达式1.3.2.2 lambda表达式 样例代码 1、condition_variable 等待中&a…

目录

    • 1、condition_variable
      • 1.1、生产者消费者模型
      • 1.2、改变共享变量的线程步骤
      • 1.3、等待信号读取共享变量的线程步骤
        • 1.3.1、获得改变共享变量线程共同的mutex
        • 1.3.2、wait()等待信号通知
          • 1.3.2.1、无lambda表达式
          • 1.3.2.2 lambda表达式
      • 样例代码

1、condition_variable

等待中,增加了时延和开销,用条件变量就很快及时处理

1.1、生产者消费者模型

生产者和消费者共享资源变量(list队列);
生产者生产一个产品,通知消费者消费;
消费者阻塞等待信号,获取信号后消费产品(取出list队列中数据)

1.2、改变共享变量的线程步骤

准备好信号量

std::condition_variable cv;

1、获取std::mutex(常用std::unique_lock)

unique_lock lock(mux);

2、在获取锁时进行修改;

msgs_.push_back(data);

3、释放锁并通知读取线程

lock.unlock();
cv.notify_one();//通知一个等待信号线程
cv.notify_all;//通知所有等待信号线程

1.3、等待信号读取共享变量的线程步骤

1.3.1、获得改变共享变量线程共同的mutex

unique_lock lock(mux);

1.3.2、wait()等待信号通知

1.3.2.1、无lambda表达式
//解锁lock,并阻塞等待notify_one notify_all 通知
cv.wait(lock);//接收到通知会再次获取锁标注,也就是说如果此时mux资源被占用,wait函数会阻塞
msgs_front();
//处理数据
msgs_pop_front();
1.3.2.2 lambda表达式
cv.wait(lock,[]{return !msgs_empty();})

只在std::unique_lockstd::mutex上工作的std::condition_variable

在这里插入图片描述

样例代码

#include <thread>
#include <iostream>
#include <mutex>
#include <list>
#include <string>
#include <sstream>using namespace std;
list<string> msgs_;
mutex mux;
condition_variable cv;//条件变量void ThreadWrite()
{for (int i = 0;;i++){stringstream ss;ss << "Write msg " << i;unique_lock<mutex> lock(mux);msgs_.push_back(ss.str());lock.unlock();//解锁cv.notify_one();//通知一个this_thread::sleep_for(1ms);}
}
void ThreadRead(int i)
{for (;;){cout << "Read msg" << endl;unique_lock<mutex> lock(mux);cv.wait(lock);//解锁、阻塞等待信号mambda表达式方式//cv.wait(lock, [i]//{//	cout << i << " wait" << endl;//特别这句话在啥时候会进入,调用多少次,搞不清楚就用上面cv.wait更简单//	//return true;//只要返回true,wait就不会阻塞//	return !msgs_.empty();//	//	});//获取信号后锁定while (!msgs_.empty()){cout << i << "read " << msgs_.front() << endl;msgs_.pop_front();}if (msgs_.empty()) return;}
}int main()
{thread th(ThreadWrite);th.detach();for (int i = 0; i < 3; i++){//读取线程thread th2(ThreadRead,i+1);th2.detach();}getchar();return 0;
}

在这里插入图片描述

期间出差了一个月,没有时间学习,今天开始又继续学习和做笔记了…
辉2023.9.8

http://www.shuangfujiaoyu.com/news/61627.html

相关文章:

  • 网站按关键词显示广告图片aso优化公司
  • 做算命网站赚钱吗公司网址怎么注册
  • 讨论致同国际网站建设情况今日国际军事新闻头条
  • 如何将软件上传到公开网站百度指数关键词
  • 青海公司网站建设哪家快西安专业seo
  • 企业商城网站建设百度官方免费下载安装
  • 网站备案核验点 上海itmc平台seo优化关键词个数
  • 儿童摄影网站模板seo关键词排名软件
  • 动态网站建设教程搜索引擎营销的特点是什么
  • 网站后台管理系统哪个好seo l
  • 做家乡网站佛山网站优化软件
  • 网站url建设东莞seo建站公司
  • 郑州外贸网站建设哪家好软件定制开发平台
  • 类似于百度快照的网站百度权重1
  • wordpress仿qq空间模板孔宇seo
  • 网站设计网站机构网站被百度收录
  • html5 网站建设杭州网站优化效果
  • 成都的网站建设公司2024新闻热点事件
  • 网页设计模板素材旅游seo模拟点击算法
  • 网站建设 金手指排名霸屏b2b电子商务网
  • 做外贸开店用哪个网站指数基金怎么买才赚钱
  • 西安网站建设多钱付费恶意点击软件
  • 做企业网站用哪个软件长治网站seo
  • 做网站要不要用jsp爱站网长尾关键词挖掘工具
  • 蜀icp备 网站建设中企动力成都seo 知乎
  • 广东营销型网站建设郑州做网站的专业公司
  • 苹果手机官网无锡谷歌优化
  • 电子商务就是建网站掌门一对一辅导官网
  • wap网站制作软件东莞seo整站优化火速
  • 以下哪些软件不是网页制作软件武汉seo招聘