У меня есть код, для которого я хотел бы использовать OpenMP следующим образом:
std::vector<int> v(1000);
# pragma omp parallel for
for (int i = 0; i < 1000; ++i) {
v[i] = i;
}
Я читал, что векторный контейнер STL не является потокобезопасным в ситуации, когда несколько потоков записываются в один контейнер, что подразумевает, что мне нужно будет заблокировать вектор перед записью; однако мне также сказали, что операция записи выше как-то "атомарна", и поэтому условия гонки не выше. Может ли кто-нибудь прояснить это?