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