c++11多线程之主线程与子线程数据传输与共享
2016-07-20 10:16
423 查看
c++线程间的数据传输与共享分很多种,而使用全局变量是很常见的一种,下面先来看看最基础的使用全局变量进行数据共享的例子:
#include<thread>
#include<iostream>
using namespace std;
static int id = 1;
void autoincrease(){
id=id+1;
}
int main()
{
cout << "before increase " << id << endl;
thread mythread(autoincrease);
mythread.join();
cout << "after increase " << id << endl;
return 0;
}
主线程可以获得子线程处理之后的数据,然而这种方法显得过于简单,我们在传输处理的过程中,不会只想要处理一个int类型的数据,要是一个结构体,应该怎么做?
下面来尝试传输并处理一下一个类类型的数据。
首先,但需要把类类型数据传输给子线程处理时,我们需要定义传输类Message,一个中转接口ReceiveInterface
#include<thread>
#include<iostream>
using namespace std;
static int id = 1;
void autoincrease(){
id=id+1;
}
int main()
{
cout << "before increase " << id << endl;
thread mythread(autoincrease);
mythread.join();
cout << "after increase " << id << endl;
return 0;
}
主线程可以获得子线程处理之后的数据,然而这种方法显得过于简单,我们在传输处理的过程中,不会只想要处理一个int类型的数据,要是一个结构体,应该怎么做?
下面来尝试传输并处理一下一个类类型的数据。
首先,但需要把类类型数据传输给子线程处理时,我们需要定义传输类Message,一个中转接口ReceiveInterface
相关文章推荐
- Leetcode 278. First Bad Version (easy) (cpp)
- C++中union用法总结
- C++学习笔记——二分查找及其STL库函数
- 350. Intersection of Two Arrays II
- C++引用
- c++——指针在数组中的应用
- 基于c++或C的开源搜索引擎
- C语言中两个反正切函数atan与atan2的区别
- 169. Majority Element
- C++几个适合的OJ刷题网站
- C语言系统资源控制(getrlimit && setrlimit)
- 浅析C语言中的setjmp与longjmp函数
- C++ Prefix Tree 粗略实现
- C语言goto语句以及用goto语句构成循环
- C/C++ 全局变量和局部变量在内存里的区别?堆和栈
- C语言goto语句
- 详细总结C++的排序算法
- C,C++文件和目录操作的一些整理
- 高速缓存对c程序的影响
- C语言中float, double类型在内存中的存储方式