我有一个程序迭代对象向量并将一个函数应用于向量的每个元素。这是每个元素之间的比较如下:
#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
是一个共享变量的事实是否会自动锁定变量,以便多个线程不能同时使用它。