直接上代码!!!
```cpp
#include <cstdio>
#include<iostream>
#include<mutex>
#include<condition_variable>
#include<queue>using namespace std;class A
{private:mutex mu;condition_variable cv;mutex mu1;condition_variable cv1;bool flag = true;int num = 10;queue<int> que;
public://队列有序读写void writeFun(){for (int i = 0;i < 10;++i){unique_lock<mutex> lock(mu);cv.wait(lock, [this] {return que.empty() == true;});cout << "正在写入队列一个数字" << endl;            que.push(i); cv.notify_one();}}void readFun(){for (int i = 0;i < 10;++i){unique_lock<mutex> lock(mu);cv.wait(lock, [this] {return que.empty()==false;});cout << "正在读取队列一个数字" << que.front() << endl;que.pop();cv.notify_one();           }}void printA() {while (num--){unique_lock<mutex> lk(mu1);cv1.wait(lk, [this]() {return flag;});cout << "A" << endl;flag =false;cv1.notify_one();}}void printB(){while (num--){unique_lock<mutex> lk(mu1);cv1.wait(lk, [this]() {return !flag;});cout << "B" << endl;flag =true;cv1.notify_one();}}};int main()
{A a;/*thread thread1(&A::writeFun, ref(a));thread thread2(&A::readFun, ref(a));*/thread thread1(&A::printA, ref(a));thread thread2(&A::printB, ref(a));thread1.join();thread2.join();std::cout << "Hello World!\n";
}

C艹多线程循环打印队列或者数字相关推荐

  1. java多线程循环打印abc,使用java多线程顺序打印“ABCABC”

    一.几个基本概念的区分 1.进程与程序的区分 程序 进程 包含代码部分.数据部分 包含代码部分.数据部分.进程控制块 顺序执行 并发执行 独占资源 共享资源 同步的 异步的 静态的 动态的 (本质区别 ...

  2. linux多线程顺序打印abc,c++11 多线程依次打印ABC

    并发 练习代码 #include #include #include #include using namespace std; std::mutex mtx; std::condition_vari ...

  3. 循环打印直角、杨辉三角图形

    循环打印星星.数字.字母问题 根本准则: 外层循环控制行数 内层循环控制列数,找到与行的关系 (当有空白列拼接在前时,写两个并列的内层for,第一个for控制空白列的数量) 内层循环的循环体控制行内元 ...

  4. java两个线程循环打印_java循环打印 多线程

    问题描述 Java多线程,循环打印"我是多线程"10次. 思路: 1 开启5个线程 "我" "是" "多" " ...

  5. Java黑皮书课后题第5章:**5.19(打印金字塔形的数字)编写一个嵌套的for循环,打印下面的输出

    **5.19(打印金字塔形的数字)编写一个嵌套的for循环,打印下面的输出 题目 题目概述 破题 代码 结果 进阶代码 代码内容 输出结果 题目 题目概述 5.19(打印金字塔形的数字)编写一个嵌套的 ...

  6. 阿里最喜欢问的多线程顺序打印的5种解法!

    Keeper导读 大家在换工作面试中,除了一些常规算法题,还会遇到各种需要手写的题目,所以打算总结出来,给大家个参考. 全文 2929 字,剩下的是代码,P6 及以下阅读只需要 8 分钟,高 P 请直 ...

  7. 多线程顺序打印的5种解法

    多线程同步的方式有许多,有传统的synchronized锁,还可以使用lock锁,下面列举多线程顺序打印的5种解法,算作对线程同步的一个总结. 文章目录 经典面试题 多种解法 使用 Lock 使用 w ...

  8. python逆序打印出各位数字_Python练习题 024:求位数及逆序打印

    [Python练习题 024] 给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. ---------------------------------------------- ...

  9. Python 中使用 for、while 循环打印杨辉三角练习(列表索引练习)。

    Python中使用for while循环打印杨辉三角练习(列表索引练习). 杨辉三角是一个由数字排列成的三角形数表,一般形式如下: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 ...

最新文章

  1. 大雁塔为什么七层_“大唐不夜城”广场旁边的千年古佛塔为何被叫“大雁塔”?...
  2. 可重复使用的MicroProfile Health探针
  3. java arraylist 重复_Java中ArrayList去除重复元素
  4. 零基础零代码,也能一周学会动态报表?这个方法很多人都不知道
  5. 2597 团伙(并查集就是好用!)
  6. 从Label Smoothing和Knowledge Distillation理解Soft Label
  7. 区块链入门教程openzeppelin库详解
  8. 安装和卸载程序时总是出现2502,2503错误代码的解决方法
  9. OpenCV人工智能图像处理学习笔记 第6章 计算机视觉加强之机器学习下 Hog_SVM小狮子识别
  10. 发光二极管pcb封装图画法_干货 | 从焊接角度谈画PCB图时应注意的问题
  11. 计算机更改虚拟内存有用吗,电脑虚拟内存有什么用(小白必知虚拟内存作用及设置技巧)...
  12. Python faker函数
  13. 23年教资面试开始啦个人报名流程
  14. 常识 | drm kms 详解
  15. java西历转换和历_java西历转换和历
  16. flutter file_picker文件选择器具体用法
  17. csgo 放置机器人_csgo怎么在确定位置放置一个bot?
  18. 远程访问服务器Jupyter Notebook的两种方法
  19. linux中如何解压.tgz
  20. C++多线程编程的几种实现方式小结

热门文章

  1. Spark - 利用 Spark SQL + MongoDB 对PandaTV主播进行等级分类
  2. js判断错误类型的分析
  3. 如何使用AccessDataSource连接Access2007
  4. LaTeX中的数学公式符号语法大全
  5. 超详细虚拟机与主机网络连接以及互Ping不通问题的解决
  6. 【从零开始学习YOLOv3】7. 教你在目标检测中添加Attention机制
  7. 网络素养公开课笔记(四)
  8. 将cmd中命令输出保存为TXT文本文件
  9. python基础篇大合集,进程、装饰器、列表详解篇
  10. PHP Comparision Operater