将结构的实例作为参数传递给不同的线程会使它成为全局吗? C ++

时间:2017-12-03 11:51:57

标签: c++ multithreading parameters parameter-passing structure

如果我创建一个结构的实例(其中包含一个名为'count'的int和一个名为'date'的另一个结构的数组(有日期和月等)),我将此实例作为当我创建线程数组中的每个线程的参数,并且可能会更改count的值,其他线程是否会知道此更改?

struct Struct_eg {
   int count;
   Date DOB; // just a filler e.g.
};

int numbers = 0;

Struct_eg instance;
instance.count = numbers;

for(int i = 0; i <= num_threads; i++) // (and I check for errors in creation in the real code)                                              
    pthread_create(&threads[i], NULL, thread, (void *) &instance);

void *thread(void *parameter) {        
struct Struct_eg *param = (struct Struct_eg *) parameter;
param->count += 1;
}    

0 个答案:

没有答案