三个线程按顺序输出数字

当 n = 3N 时,线程1输出
当 n = 3N + 1 时,线程2输出
当 n = 3N + 2 时,线程3输出

最终的输出为 0、1、2、3、4、5、6、7、8、10

#include <iostream>
#include <thread>
#include <mutex>
#include <condition_variable>
using namespace std;mutex mut;
condition_variable cv;
int N = 0;
void func1() {unique_lock<mutex> lock(mut);while (true) {cv.wait(lock, []{return (N % 3) == 0;});cout << N << endl;N++;cv.notify_all();}
}void func2() {unique_lock<mutex> lock(mut);while (true) {cv.wait(lock, []{return (N % 3) == 1;});cout << N << endl;N++;cv.notify_all();}
}void func3() {unique_lock<mutex> lock(mut);while (true) {cv.wait(lock, []{return (N % 3) == 2;});cout << N << endl;N++;cv.notify_all();}
}int main() {thread t1(func1);thread t2(func2);thread t3(func3);t1.join();t2.join();t3.join();return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TextView实现自动滚动滚动.

必须有要四个属性: android:ellipsize"marquee"; android:focusable"true";android"focusableInTouchMode"true";android:singleLine"true"; <TextViewandroid:layout_width"fill_parent"android:layout_height&quo…

用最少数量的箭引爆气球

在二维空间中有许多球形的气球。对于每个气球&#xff0c;提供的输入是水平方向上&#xff0c;气球直径的开始和结束坐标。由于它是水平的&#xff0c;所以y坐标并不重要&#xff0c;因此只要知道开始和结束的x坐标就足够了。开始坐标总是小于结束坐标。平面内最多存在104个气球…

ExtJS中使用ztree 不显示树的解决办法

最近部门同事碰到一个问题&#xff0c;将ztree嵌入在套了几层Panel的面板中不会正常显示&#xff0c;但是将上层面板换成window就能正常显示&#xff0c;开始以为是所在的外部容器不管嵌套了几层&#xff0c;但是必须最底层是window容器&#xff0c;但是测试后发现不是这样的&a…

寻找小镇的法官

在一个小镇里&#xff0c;按从 1 到 N 标记了 N 个人。传言称&#xff0c;这些人中有一个是小镇上的秘密法官。 如果小镇的法官真的存在&#xff0c;那么&#xff1a; 小镇的法官不相信任何人。 每个人&#xff08;除了小镇法官外&#xff09;都信任小镇的法官。 只有一个人同…

事务的隔离界别

事务的ACID特性&#xff1a; 1、Atomicity原子性 事务操作的不可分割性&#xff0c;要么全部执行&#xff0c;要么回滚。 2、Consistency一致性 数据库在事务处理前后处于的一致性状态。如银行转账&#xff0c;两个账户转账前的状态和转账后的状态必须一致。 3、Isolation隔离…

程序员福利各大平台免费接口非常适用

电商接口 京东获取单个商品价格接口: http://p.3.cn/prices/mgets?skuIdsJ_商品ID&type1 ps:商品ID这么获取:http://item.jd.com/954086.html 物流接口 快递接口: http://www.kuaidi100.com/query?type快递公司代号&postid快递单号 ps:快递公司编码:申通”shentong”…

WriteN, RTMP send error

WriteN, RTMP send error 32 (133 bytes) WriteN, RTMP send error 32 (49 bytes) WriteN, RTMP send error 9 (42 bytes)现象&#xff1a; 推流失败&#xff0c;srs服务出错。 原因 视频流较慢&#xff0c;音频流较快。 复现 视频解码得到帧数据&#xff0c;用异步接口处…

样式公用代码

/************** bug ************/.clearfix:after {content:""; display:block; height:0px; clear:both; overflow:hidden;}.clearfix {display:inline-block;}.clearfix {display:block;} /************** 公共用 ************/html {overflow:-moz-scrollbars-v…

即时聊天IM之二 openfire 整合现有系统用户

合肥程序员群&#xff1a;49313181。 合肥实名程序员群&#xff1a;128131462 (不愿透露姓名和信息者勿加入) Q Q:408365330 E-Mail:egojitqq.com 综述&#xff1a; 每天利用中午时间更新下这个知识点的的博客如果感兴趣的觉得更新慢了也别介意&#xff08;其它时间还是…

cannot convert ‘_IO_FILE*’ to ‘const char*

错误代码 #ifdef NDEBUG#define DBUG_PRINT(fmt, ...) #else#define DBUG_PRINT(fmt, ...) printf(fmt, ##__VA_ARGS__) #endifBUG_PRINT(stderr, "decode %s does not support device type cuda.\n", dec->name);修改 BUG_PRINT("decode %s does not supp…

找出数组中前K大的值

将数组划分为两部分&#xff0c;前K项为前K大值的集合&#xff0c;无需有序。 while(true) {int flag nums[k];while(i < k && nums[i] > flag) {i;}while(j>k && nums[j] < flag) {j--;}if (i j || nums[i] nums[j]) {break;}int tmp nums[i]…

C#在ASP.NET4.5框架下的首次网页应用

运行效果预览: 先看实践应用要求: 1&#xff0e;编写一个函数&#xff0c;用于计算1&#xff01;2&#xff01;3&#xff01;4&#xff01;5&#xff01;&#xff0c;在控制台或页面输出运行结果。 2&#xff0e;在控制台或页面输出九九乘法表。 3&#xff0e;输入10个以内的整…

javascript的变态位运算

javascript的变态位运算 var a "10" | 0; alert(a); alert (typeof a);结果为10,number。 这就是说这条语句可以将字符串转化为number。 如果&#xff1a;var a "sss" | 0;alert(a);结果为0.parseInt("sss")的话&#xff0c;会返回NaN。这个太…

CUDA: OpenCV requires enabled ‘cudev‘ module from ‘opencv_contrib

wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.X.X.zip unzip opencv_contrib.zip cmake -D OPENCV_EXTRA_MODULES_PATH~/opencv_contrib-4.X.X/modules参考

Android-Universal-Image-Loader三大组件DisplayImageOptions、ImageLoader、ImageLoaderConfiguration详解...

转 一、介绍 Android-Universal-Image-Loader是 一个开源的UI组件程序&#xff0c;该项目的目的是提供一个可重复使用的仪器为异步图像加载&#xff0c;缓存和显示。所以&#xff0c;如果你的程序里需要这个功能的话&#xff0c;那么不妨试试它。 因为已经封装好了一些类和方法…

营销类文章 SEO

如何有效的推广网站 适合没钱的中小站长 唐世军 a5总经理 博客 门户网站广告报价—以新浪为例 贵的一天30多万 碧蓝天营销学院 网络营销&#xff0c;你真的了解吗&#xff1f; SEO工具mozBar介绍、友情链接新参考mozRank 谈谈网络推广团队每天工作流程、工作标准、考核 请问安卓…

显示 grep 结果的指定行

用grep查找特定关键字&#xff0c;结果很多&#xff0c;但是有用的在中间的某几行&#xff0c;即grep得到结果之后再次过滤出指定几行。 首先查找指定行 grep -a "X" filename | grep -an "X"记下指定行&#xff0c;然后用awk打印指定行 grep -a "…

Java小知识

内部类分为: 成员内部类、静态嵌套类、方法内部类、匿名内部类。(1)、内部类仍然是一个独立的类&#xff0c;在编译之后内部类会被编译成独立的.class文件&#xff0c;但是前面冠以外部类的类名和$符号。(2)、内部类不能用普通的方式访问。成员变量成员变量静态成员变量。List遍…

C++ 设置线程名字

使用 std::thread #include <thread> #include <pthread.h>std::thread t(funs, args); pthread_setname_np(t.native_handle(), threadName);通过 pthread_create 创建 #define _GNU_SOURCE #include <pthread.h>pthread_t tid; pthread_create(&ti…

java学习_File属性处理

// TODO Auto-generated method stub File filenew File("newhello.txt"); //文件是否存在 System.out.println("文件是否存在&#xff1a;"file.exists()); //读取文件名称 System.out.println("读取文件名&#xff1a;"file.getName()); //读取…