1. 程式人生 > >c++11多執行緒之主執行緒與子執行緒資料傳輸與共享

c++11多執行緒之主執行緒與子執行緒資料傳輸與共享

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