c++11 多线程依次打印ABC
并发 练习代码
#include <thread> #include <vector> #include <mutex> #include <iostream>using namespace std;std::mutex mtx; std::condition_variable cv;char arr[] = { 'a','b','c' }; char message = 'a';void test(int i) {for(int j = 0 ;j < 10;++j){std::unique_lock<std::mutex> lk(mtx);cv.wait(lk, [=] {return message == arr[i]; });std::cout << arr[i];message = arr[(i + 1) % 3];lk.unlock();cv.notify_all();} }int main() {std::thread t[3];for (int i = 0; i < 3; ++i) {t[i] = std::thread(test,i);}for (int i = 0; i < 3; ++i) {t[i].join();}std::cout << std::endl;return 0; }
转载于:https://www.cnblogs.com/itdef/p/8193571.html
c++11 多线程依次打印ABC相关推荐
- linux多线程顺序打印abc,c++11 多线程依次打印ABC
并发 练习代码 #include #include #include #include using namespace std; std::mutex mtx; std::condition_vari ...
- java多线程交替打印abc
你可以使用 synchronized 和 wait / notify 来实现多线程交替打印abc. 以下是一个示例代码: public class PrintABC {private intstate ...
- 多线程依次打印abcabc
网络原题: 编写一个程序,开启3个线程,这3个线程的ID分别为A.B.C,每个线程将自己的ID在屏幕上打印10遍,要求输 出结果必须按ABC的顺序显示:如:ABCABC-.依次递推 这里设置ITEM= ...
- java多线程循环打印abc,使用java多线程顺序打印“ABCABC”
一.几个基本概念的区分 1.进程与程序的区分 程序 进程 包含代码部分.数据部分 包含代码部分.数据部分.进程控制块 顺序执行 并发执行 独占资源 共享资源 同步的 异步的 静态的 动态的 (本质区别 ...
- Linux编程题:信号量同步三进程依次打印若干次ABC
三个进程依次打印ABC..... 思路及大致流程如下: 思路取自这位大哥: Linux编程题:创建3个线程分别打印abc,用信号量进行同步_cleverlemon的博客-CSDN博客 这位大哥写的是线 ...
- 让3个线程打印ABC
让3个线程依次打印ABC,是一个常见的(面试)问题,这是阿里和华为都有考过的面试题.比如题目描述如下: 编写一个程序,开启三个线程,这三个线程按照顺序依次打印ABC,每个字母打印10次后结束,最后结果 ...
- python两个线程交替打印_三线程按顺序交替打印ABC的四种方法
建立三个线程A.B.C,A线程打印10次字母A,B线程打印10次字母B,C线程打印10次字母C,但是要求三个线程同时运行,并且实现交替打印,即按照ABCABCABC的顺序打印. 二.Synchroni ...
- 算法移植优化(四)c++11 多线程
c++11多线程库:std::thread 一.join函数:用于等待线程对象运行结束 程序从main函数开始,本来由一个线程执行:当执行到std::thread定义一个线程对象,给定初始构造函数后, ...
- 多线程顺序打印的5种解法
多线程同步的方式有许多,有传统的synchronized锁,还可以使用lock锁,下面列举多线程顺序打印的5种解法,算作对线程同步的一个总结. 文章目录 经典面试题 多种解法 使用 Lock 使用 w ...
- 三个线程交替打印ABC(Condition实现精确通知)
三个线程交替打印ABC: package pc;import java.util.concurrent.locks.Condition; import java.util.concurrent.loc ...
最新文章
- SQLite与pandas
- GitHub标星2000+,如何用30天啃完TensorFlow2.0?
- 搭建阿里云ecs服务器(一:购买)
- 锁究竟锁住的是什么?
- openwrt系统安装到云服务器异常,OpenWrt路由器系统下服务OpenClash 安装教程及其折腾踩坑记录...
- 使用jclouds在S3上分段上传
- PyTorch系列 | 如何加快你的模型训练速度呢?
- 一个技术人员必须考虑的问题:转型
- Python+pillow计算椭圆图形几何中心
- CyaSSL 2.4.6 发布,SSL 加密库
- 数据采集之登录那些事
- SYNOPSYS DDR VIP use note
- python list 迭代_python迭代、列表生成式
- 杂谈:编程解决水管工游戏
- 阿里云ECS服务器配置ubuntu安装openfire服务器
- 33岁跨专业考计算机研究生,盲目跨专业考研考上以后也不轻松
- Cmn组合数c语言,计算并输出组合数Cmn……不会打……要求递归……谢谢
- 流式数据架构理论 ◆ 基本概念
- docker 容器启动提示,ipv4不能被使用
- new DecimalFormat(#0.###)中0与#
热门文章
- server2012文件服务器的开始按钮,Windows Server 2012实用技巧集锦
- 浅析单调递增子序列问题(LIS)
- int main(argc,char *argv[])的含义
- 【模板】lucas定理和扩展lucas定理(组合数取模)
- C/C++[codeup 2046]8皇后
- CNN是如何一层一层'理解'图像信息的
- 算法:分离链表为两部分,小于某个值都在左边,大于等于某个值在右边 Partition List
- python的符号lt和gt怎么输入_lt;lt;Python基础教程gt;gt;学习笔记 | 第04章 | 字典...
- 凸优化第六章逼近与拟合 6.4鲁棒逼近
- 现代通信原理:月考(二)答案