题目:编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。

采用C++11实现:

#include<iostream>
#include<thread>
#include<mutex>
#include<condition_variable>
using namespace std;
mutex m;
condition_variable cond;
int LOOP=10;
int flag=0;void fun(int id){for(int i=0;i<LOOP;i++){unique_lock<mutex> lk(m);while(id!=flag)//一定要用循环判断,若是if多个阻塞线程唤醒后同时处于临界区cond.wait(lk);cout<<(u_char)('A'+id)<<" ";flag=(flag+1)%3;cond.notify_all();}
}
int main(){thread B(fun,1);thread C(fun,2);fun(0);cout<<endl;B.join();C.join();return 0;
}

程序输出:

ABCABCABCABCABCABCABCABCABCABC

C++并发实战:面试题2:一道迅雷笔试题相关推荐

  1. 剑指Offer——迅雷笔试题+知识点总结

    剑指Offer--迅雷笔试题+知识点总结 情景回顾 时间:2016.9.19 19:00-21:00 地点:山东省网络环境智能计算技术重点实验室 事件:迅雷笔试 总体来说,迅雷笔试内容体量不算多,主要 ...

  2. 数位DP--由一道微软笔试题引起

    前天晚上,一位研三的学长突然跑到我们宿舍,问我们一道微软笔试题.给你一个整数n,求出1到n这个区间范围内包含数字0的个数,例如当n=10的时候就只有10包含0,输出1,n=90就输出9.唯一的要求是此 ...

  3. 招聘软件测试笔试题及答案,软件测试笔试题及答案 招聘笔试题(一般能力测试50道及答案).doc...

    软件测试笔试题及答案 招聘笔试题(一般能力测试50道及答案) 一般能力测试 一. 数学运用 数学推理: 1.22 18 14 10 6 ( ) A.0 B.2 C.3 D.4 2.20 12 32 1 ...

  4. STL系列之十 全排列(百度迅雷笔试题)

    分享一下我老师大神的人工智能教程!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 全排列在笔试面试中很热门, ...

  5. linux 将test.log中第1行的所有都替换成,【Linux面试题7】三剑客笔试题集合

    三剑客笔试题集合 一. 三剑客-基础部分题目 1. 选择 1.在给定文件中查找与条件相符字符串的命令及查找某个目录下相应文件的命令为:(多选)(AC) A:grep B:gzip C:find D:s ...

  6. 平安外包软件测试面试题,中国平安银行软件测试笔试题 .doc

    中国平安银行软件测试笔试题 .doc 中国平安银行软件测试笔试题 导语:下面小编为你整理为了中国平安银行关于软件 测试笔试试题,欢迎阅读! 中国平安银行关于软件测试笔试试题(一) 下面是一平安银行的软 ...

  7. 一次Java解析数独的经历,java面试题,java高级笔试题

    写在最前面,我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家.扫码加微信好友进[程序员面试学习交流群],免费领取.也欢迎各位一起在群里探讨技术. 1. ...

  8. java英文笔试题_java英文面试笔试题

    java英文面试笔试题 Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,小编收集了java英文面试笔试题,欢迎阅读. Question: ...

  9. c语言面试题下载,C语言笔试题A.doc

    C语言笔试题A 选择题(本大题共25小题,每小题2分,共50分) 1.C语言程序总是从 c 开始执行. A.书写顺序的第一个函数 B.书写顺序的第一条执行语句 C.主函数main D.不确定 2.以下 ...

最新文章

  1. 奥数国家队最强6人集结,深圳中学独占2席,人大附中连续三年入围
  2. PHP实现列表页综合筛选功能,dede织梦列表页联动筛选方法功能的实现
  3. 运营商线路细分_呼叫中心各种线路的区分
  4. 对集合变量定义赋值_SpringBoot配置加载原理(自定义加载配置)
  5. javascript-高级用法
  6. maven本地库已经有的包了,如何不下载(linux环境)
  7. C#中ToString格式大全
  8. golang的sync包例子
  9. js获取验证码倒计时60s(超简单)
  10. Axure RP 8管理团队项目中遇到的问题
  11. 蓝牙小车换一个蓝牙串口助手就不管用了?
  12. CocosCreator矢量绘图组件(2)
  13. 谷歌命名工具_Google地图正在重命名整个社区
  14. vo、dto、bo、do、po的概念理解以及与controller、service、dao层的对应关系
  15. C++描述 LeetCode 112. 路径总和
  16. Romax Designer 机械传动系统 视频
  17. 3年磨一剑,谷歌VR工作室新游戏Cosmonious High解析
  18. ubuntu 修改系统默认语言为英文!
  19. old DIB in res XXX ico pass it through SDKPAINT 错误
  20. mysql自然连接的例题详解_基于 MySQL 的数据库实践(自然连接)

热门文章

  1. 2023级网络安全岗面试题及面试经验分享
  2. 【小程序开发之准备工作】如何开通云开发和CMS内容管理平台
  3. 虚拟机安装64位Orace_Linux
  4. 精彩回顾 | 客户体验官俱乐部(CEOC)首届主题论坛在深圳圆满落幕
  5. 项目管理笔记-第十三章 项目相关方管理
  6. 为什么有时 Oracle 数据库不用索引来查找数据
  7. python播放网页视频_python如何播放视频
  8. java中404什么意思_java web中关于404问题的根本来源与解决
  9. html地图添加marker,谷歌地图 API 开发之添加标记
  10. 新版 playCover 键位映射教程(mac 玩 ios 原神键位映射示例)