C++并发实战:面试题3:一道google笔试题
来源:互联网 发布:配色软件中文 编辑:程序博客网 时间:2024/04/30 08:16
题目:有四个线程1、2、3、4。线程1的功能就是输出1,线程2的功能就是输出2,以此类推.........现在有四个文件ABCD。初始都为空。现要让四个文件呈如下格式:
A:1 2 3 4 1 2....
B:2 3 4 1 2 3....
C:3 4 1 2 3 4....
A:1 2 3 4 1 2....
B:2 3 4 1 2 3....
C:3 4 1 2 3 4....
D:4 1 2 3 4 1....
c++11代码:
#include<iostream>#include<thread>#include<mutex>#include<condition_variable>#include<stdlib.h>using namespace std;#define LOOP 10mutex m;condition_variable cond;int flag;void fun(int num){ for(int i=0;i<LOOP;i++){ unique_lock<mutex> lk(m); while(flag!=num) cond.wait(lk); cout<<num+1<<" "; flag=(flag+1)%4; cond.notify_all(); }}int main(int argc,char* argv[]){//argv[1]为0时写入A文件,2时写入B文件... flag=atoi(argv[1]); thread one(fun,1); thread two(fun,2); thread three(fun,3); fun(0); one.join(); two.join(); three.join(); cout<<endl; return 0;}
0 0
- C++并发实战:面试题3:一道google笔试题
- C++并发实战:面试题1:一道多线程笔试题
- C++并发实战:面试题2:一道迅雷笔试题
- 一道Google面试题
- 一道c面试题
- 一道C面试题。
- 一道c面试题
- google的一道面试题
- google的一道面试题
- 一道google电话面试题
- google的一道面试题
- Google的一道面试题
- 一道 Google 的面试题
- google笔试题一道
- 一道面试题:c语言谜题
- C笔试面试题
- 一道C语言面试题
- 一道C的面试题
- 揪出口臭十大罪魁祸首
- shell多行注释
- 批处理学习(三)
- 项目一(2)。不用参数默认构造函数
- 重构改善既有代码的设计--重构第一个案例
- C++并发实战:面试题3:一道google笔试题
- 海里数据处理面试题中的一些概念介绍
- 李白打酒
- c# 自动调整列宽
- VMware Workstation 不可恢复错误: (vmx)Exception 0xc0000006 (disk error while paging) has occurred.
- Unbuntu hbase0.96伪分布模式安装
- 深入Java虚拟机--第一章 Java体系结构介绍
- 第一次交流
- 在windows系统使用OCFS挂载共享磁盘