通过引用传递不在std :: thread构造函数中工作

时间:2018-01-27 13:29:32

标签: c++ multithreading c++11 stdthread

我正在尝试使用一个通过引用获取对象的函数(string&)来生成一个线程并修改它。主线程等待该线程返回。线程返回主线程后,对修改后的对象应用一些操作。

测试代码如下: -

/*It modifies the data and returns processed information by filtering the information*/
void process_data(string& data); 

int main(){
    /*it will get the parsed information from the source*/
    string parsed_data = get_parsed_data(source_id/*some source*/); 
    thread pre_process_thread(process_data, parsed_data);
    pre_process_thread.join();
    populate_obj(parsed_data);
    return 0;   
}

现在,我的问题是虽然parsed_data作为对process_data()的引用传递,并且进程数据函数正在按预期修改该数据,但是在pre_process_thread完成之后,某种方式是parsed_data显示原始数据。 理想情况下,当我通过引用传递时,它应该显示修改后的值。

0 个答案:

没有答案