C艹多线程循环打印队列或者数字
直接上代码!!!
```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艹多线程循环打印队列或者数字相关推荐
- java多线程循环打印abc,使用java多线程顺序打印“ABCABC”
一.几个基本概念的区分 1.进程与程序的区分 程序 进程 包含代码部分.数据部分 包含代码部分.数据部分.进程控制块 顺序执行 并发执行 独占资源 共享资源 同步的 异步的 静态的 动态的 (本质区别 ...
- linux多线程顺序打印abc,c++11 多线程依次打印ABC
并发 练习代码 #include #include #include #include using namespace std; std::mutex mtx; std::condition_vari ...
- 循环打印直角、杨辉三角图形
循环打印星星.数字.字母问题 根本准则: 外层循环控制行数 内层循环控制列数,找到与行的关系 (当有空白列拼接在前时,写两个并列的内层for,第一个for控制空白列的数量) 内层循环的循环体控制行内元 ...
- java两个线程循环打印_java循环打印 多线程
问题描述 Java多线程,循环打印"我是多线程"10次. 思路: 1 开启5个线程 "我" "是" "多" " ...
- Java黑皮书课后题第5章:**5.19(打印金字塔形的数字)编写一个嵌套的for循环,打印下面的输出
**5.19(打印金字塔形的数字)编写一个嵌套的for循环,打印下面的输出 题目 题目概述 破题 代码 结果 进阶代码 代码内容 输出结果 题目 题目概述 5.19(打印金字塔形的数字)编写一个嵌套的 ...
- 阿里最喜欢问的多线程顺序打印的5种解法!
Keeper导读 大家在换工作面试中,除了一些常规算法题,还会遇到各种需要手写的题目,所以打算总结出来,给大家个参考. 全文 2929 字,剩下的是代码,P6 及以下阅读只需要 8 分钟,高 P 请直 ...
- 多线程顺序打印的5种解法
多线程同步的方式有许多,有传统的synchronized锁,还可以使用lock锁,下面列举多线程顺序打印的5种解法,算作对线程同步的一个总结. 文章目录 经典面试题 多种解法 使用 Lock 使用 w ...
- python逆序打印出各位数字_Python练习题 024:求位数及逆序打印
[Python练习题 024] 给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. ---------------------------------------------- ...
- Python 中使用 for、while 循环打印杨辉三角练习(列表索引练习)。
Python中使用for while循环打印杨辉三角练习(列表索引练习). 杨辉三角是一个由数字排列成的三角形数表,一般形式如下: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 ...
最新文章
- 大雁塔为什么七层_“大唐不夜城”广场旁边的千年古佛塔为何被叫“大雁塔”?...
- 可重复使用的MicroProfile Health探针
- java arraylist 重复_Java中ArrayList去除重复元素
- 零基础零代码,也能一周学会动态报表?这个方法很多人都不知道
- 2597 团伙(并查集就是好用!)
- 从Label Smoothing和Knowledge Distillation理解Soft Label
- 区块链入门教程openzeppelin库详解
- 安装和卸载程序时总是出现2502,2503错误代码的解决方法
- OpenCV人工智能图像处理学习笔记 第6章 计算机视觉加强之机器学习下 Hog_SVM小狮子识别
- 发光二极管pcb封装图画法_干货 | 从焊接角度谈画PCB图时应注意的问题
- 计算机更改虚拟内存有用吗,电脑虚拟内存有什么用(小白必知虚拟内存作用及设置技巧)...
- Python faker函数
- 23年教资面试开始啦个人报名流程
- 常识 | drm kms 详解
- java西历转换和历_java西历转换和历
- flutter file_picker文件选择器具体用法
- csgo 放置机器人_csgo怎么在确定位置放置一个bot?
- 远程访问服务器Jupyter Notebook的两种方法
- linux中如何解压.tgz
- C++多线程编程的几种实现方式小结