4.C++多线程-- unique_lock(类模板)

1.unique_lock

1. unique_lock<mutex> myUniLock(myMutex); 完全可以取代lock_guard

2. unique_lock 也可以使用----std::adopt_lock

3.使用adopt_lock,之前要先使用lock.

4.std::chrono::milliseconds my_sleepTime(20000)//20000毫秒

       std::this_thread::sleep_for(my_sleep);// 开始休息20秒

关键词1:try_to_lock

  • 尝试用mutex的lock()去锁定这个mutex,但如果没有锁定成功,会立即返回,不会阻塞在那里;
  • 使用try_to_lock的原因是防止其他的线程锁定mutex太长时间,导致本线程一直阻塞在lock这个地方
  • 前提:不能提前lock();
  • owns_lock()方法判断是否拿到锁,如拿到返回true

关键词2:defer_lock

  • 如果没有第二个参数就对mutex进行加锁,加上defer_lock是始化了一个没有加锁的mutex
  • 不给它加锁的目的是以后可以调用unique_lock的一些方法
  • 前提:不能提前lock
  • 不用自己unlock,有点类似智能指针;当然也可以自己提前解锁

 关键词3:try_lock():尝试给互斥量加锁
如果拿不到锁,返回false,否则返回true。

关键词4:release()

 2.总结

adopt_lock:

使用之前先lock,不能自己unlock

my_mutex.lock();
unique_lock<mutex> myUniLock(my_mutex,adopt_lock);
{	//my_mutex.lock();my_list.push_back(i);cout << "插入元素:" << i << endl;//my_mutex.unlock();
}

 try_to_lock 

使用之前不能先lock, try_to_lock会自己先尝试进行加锁。如果不能加锁,通过判断直接执行其他

defer_lock 见上

#include<iostream>
#include<list>
#include<thread>
#include<mutex>using namespace std;
class son_thread {
public:void product() {for (int i = 0; i < 10000; i++) {unique_lock<mutex> myUniLock(my_mutex, defer_lock);myUniLock.lock();{	//my_mutex.lock();my_list.push_back(i);cout << "插入元素:" << i << endl;//my_mutex.unlock();}//my_mutex.unlock();}}void consume() {my_mutex.lock();if (my_list.empty()) {cout << "容器为空" << endl;}else {cout << " 进行消费" << my_list.front() << endl;my_list.pop_front();}my_mutex.unlock();}void consume_continue() {while (1) {this->consume();}}
private:std::mutex my_mutex;list<int>my_list;
};int main() {son_thread s1;thread obj1(&son_thread::product, &s1);thread obj2(&son_thread::consume_continue,&s1);obj1.join();obj2.join();return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/353965.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

打开浏览器的同时会在主页外同时打开芒果TV,抖音等网站

问题&#xff1a;每次打开谷歌浏览器的同时会同时打开芒果TV&#xff0c;抖音等网站。导致每次都要进行网页关闭&#xff0c;非常麻烦。 解决&#xff1a;在扩展程序中有一个叫做“省钱购”的程序&#xff0c;只需要将其移走就可以了。 扩展程序的位置&#xff1a;自定义及控…

最新超漂亮UI仿芒果TV听书网站模板双端+苹果CMS内核

正文: 苹果cms超漂亮UI高仿芒果TV听书网站模板带手机端。 手机版修改logo&#xff0c;ting_wap/images/logo.png 电脑版修改logo&#xff0c;ting_pc/img/logo.png 编辑推荐后台推荐5颗星&#xff0c;新势力/热播榜单后台推荐9颗星。 程序: wwyfeu.lanzoum.com/iQ0F00gbt…

芒果播放器介绍

芒果播放器 芒果全能播放器能播放所有格式的视频、音频文件、以及主流图片文件。短小精悍、简洁明了、绿色&#xff0c;无广告&#xff0c;其FLASH播放比暴风音影更真实。原本为教育教学服务&#xff0c;广大师生反应较好&#xff0c;现全面推广。 【1.1版下载地址】 http://…

非常简单下载芒果tv视频的方法(无需安装任何软件)

1、打开芒果tv网站&#xff0c;找到需要下载的视频地址比如&#xff1a;https://www.mgtv.com/b/328606/5533377.html?fpase 2、打开网页&#xff1a;https://www.parsevideo.com/mgtv/ 3、输入需要分析的视频地址&#xff1a; 4、分析结果如下&#xff0c;并点击第二行的下…

最新芒果TV视频下载方法-马赛克视频助手

芒果TV是一款资源丰富的互联网视频平台。它除了可以看视频外&#xff0c;还可以将这些视频下载下来。但官方是不支持视频下载的&#xff0c;那么芒果TV该怎么下载视频么&#xff1f;接下来就让我们一起去看看吧。 今天小编就教大家如何把上面喜欢的视频下载下来 1.这里我们需…

芒果TV 2021 互联网人才招聘

长沙&#xff0c;关键词是什么&#xff1f; 小龙虾、臭豆腐 马栏山 中国最具幸福感城市 芒果TV&#xff0c;关键词是什么&#xff1f; 天生青春&#xff0c;NO.1 中国互联网百强 世界媒体五百强 理想&#xff0c;非得在北上广实现么&#xff1f; 其实&#xff0c;追梦的路上不一…

Android TV 开发之 TV视频播放器

Android TV视频播放器VideoView 不想往下看可以直接在GitHub上面克隆到自己的项目中 GitHub地址 闲谈 最近公司又给了一个新任务&#xff0c;说要做电视机顶盒开发&#xff0c;这个机顶盒开发之前也没有接触过啊&#xff0c;没经验&#xff0c;这使我走了很多坑&#xff0c;写…

芒果TV会员,月卡最低9.9元,年卡最低128元!

全国首部湘商题材电视剧《一代洪商》&#xff0c;将于3月27日在央视八套&#xff08;电视剧频道&#xff09;播出&#xff0c;芒果TV将线上播出。该剧由王少华编剧&#xff0c;路奇担纲导演&#xff0c;孟凡耀担任总制片人&#xff0c;张丰毅、李立群、张睿、张含韵等人主演&am…

芒果tv官网服务器维护,芒果tv看不了【解决方案】

win7系统有很多人都喜欢使用,我们操作的过程中常常会碰到win7系统芒果tv看不了的问题。如果遇到win7系统芒果tv看不了的问题该怎么办呢&#xff1f;很多电脑水平薄弱的网友不知道win7系统芒果tv看不了究竟该怎么解决&#xff1f;其实不难根据下面的操作步骤就可以解决问题1.DNS…

jquery mini下载_【芒果tv湖南卫视直播】-芒果TV播放器下载v6.3.4 官方正式版

芒果tv湖南卫视直播电脑版最近也改版更新了&#xff0c;在西西在认识中这些媒体一般是不会重视客户端这块的&#xff0c;新版比旧版大了不少&#xff0c;因此软件的版面也是大气了很多&#xff0c;不过对于用户来说只要能及时的观看湖南卫视的节目已经热播的电视剧就OK了哦。芒…

芒果Tv服务器维护,芒果tv怎么看直播?芒果tv直播看不了怎么办?

芒果tv怎么看直播 芒果TV是湖南卫视新媒体金鹰网旗下的网络电视播放器&#xff0c;为用户提供包括电视剧、电影、电视节目、新闻纪实、音乐等多种类型的点播服务。那么芒果tv怎么看直播? 1.打开【芒果TV】&#xff0c;往左划动上方的导航栏。 2.点击【直播】&#xff0c;这里就…

芒果tv视频抓包分析

今天遇到个朋友问我怎么下载芒果tv的蓝光视频&#xff0c;说她也有芒果tv的会员&#xff0c;但是用网上的一些软件下载下来的视频很模糊&#xff0c;根本不是什么蓝光1080p的&#xff0c;所以我们今天就来分析下芒果tv的蓝光视频怎么下载 1.还是老规矩&#xff0c;打开我们的马…

芒果TV 平板端 以EPG(IPTV)形式复刻

技术介绍 使用View-App框架&#xff08;单页面&#xff09;实现交互Web端&#xff0c;使用阿里web播放IPTV端&#xff0c;使用机顶盒播放器使用webpack打包&#xff0c;兼容es5及之前版本功能方面&#xff0c;暂未使用第三方库 项目地址 项目效果&#xff1a;部署地址View-A…

为什么显示芒果tv服务器异常怎么办,芒果tv打不开怎么办 芒果tv打不开解决方法...

大家经常使用芒果tv看电视直播或者热播电视剧&#xff0c;小编也不例外&#xff0c;相信有的朋友遇到过芒果tv打不开的情况。下面小编就为大家分享几个芒果tv打不开的解决方法 原因一&#xff1a;DNS服务器被劫持导致芒果TV直接打不开。 1、如图所示&#xff0c;点击运行——输…

Android开源demo---芒果TV-VIP电影播放器

抓取的是芒果tv官方的api&#xff0c;理由永久可用 补上一张播放图 界面随便写了一下&#xff0c;一共分为三次解析&#xff0c;利用芒果tv的影片ID&#xff0c;最终解析出来的是m3u8的地址&#xff0c;播放器我是用的Vitamio播放器&#xff0c; 贴一下MainActivity的代码 1 pa…

为什么显示芒果tv服务器异常怎么办,芒果TV看不了怎么办?芒果TV打不开怎么办?...

芒果TV是湖南广播电视台推出的一款互联网视频平台&#xff0c;芒果TV能够为用户带来独家的湖南卫视视频内容&#xff0c;如果有一些资源是湖南卫视专有的&#xff0c;那么就可以在芒果TV上看到。近期有网友表示芒果TV看不了&#xff0c;或者称芒果TV打不开&#xff0c;对于这个…

新版芒果tv电脑版 v6.3.9官方版

芒果tv新版是湖南卫视新媒体金鹰网旗下的免费网络直播电脑版客户端&#xff0c;在整合湖南广播电视台和芒果传媒优质资源的基础上&#xff0c;大力整合内容、创新服务应用、拓展传播领域、完善用户体验&#xff0c;开辟新型视频传播业态&#xff0c;贯通视频生活应用&#xff0…

芒果TV视频点播器

2019独角兽企业重金招聘Python工程师标准>>> <!DOCTYPE html> <html> <head> <meta http-equiv"Content-Type" content"text/html;charsetutf-8"> <title>芒果TV视频点播器---eagle天堂盲鹰</title> …

Unity基础框架从0到1(六)对象池模块

索引 这是Unity基础框架从0到1的第六篇文章&#xff0c;框架系列的项目地址是&#xff1a;https://github.com/tang-xiaolong/SimpleGameFramework 文章最后有目前框架系列的思维导图&#xff0c;前面的文章和对应的视频我一起列到这里&#xff1a; 文章 Unity基础框架从0到…

【新版】系统架构设计师 - 新老教材对比分析

个人总结&#xff0c;仅供参考&#xff0c;欢迎加好友一起讨论 文章目录 新老教材比较新版教材章节分析 新老教材比较 提示&#xff1a;请自行购买并浏览新版系统架构设计师教材 原教材&#xff1a;2009年出版&#xff0c;共21章&#xff0c;572页。新教材&#xff1a;2022年出…