共享变量是否具有默认锁定?

时间:2015-05-15 10:17:05

标签: c++ multithreading openmp

我有一个程序迭代对象向量并将一个函数应用于向量的每个元素。这是每个元素之间的比较如下:

#pragma omp parallel for shared(i, myVector)
for(i = 0 ; i < myVector.size() ; i++) {
    for(int j = i + 1 ; j < bdd.size() ; j++) {
        myVector[i]->compare(*myVector[j]); //
    }
}

我不修改矢量。我在每个Object元素的属性中添加一个值。因此,我认为我不需要任何锁用于此用途。

这是我的问题:使用多个线程(从一到八个线程测试)不会加快进程。我想知道myVector是一个共享变量的事实是否会自动锁定变量,以便多个线程不能同时使用它。

0 个答案:

没有答案