Я пытаюсь распараллелить следующую функцию (псевдокод):
vector<int32> out;
for (int32 i = 0; i < 10; ++i)
{
int32 result = multiplyStuffByTwo(i);
// Push to results
out.push_back(result);
}
Когда я теперь распараллеливаю цикл for и определяю часть push_back как критический путь, я сталкиваюсь с проблемой, что (конечно) порядок результатов в out не всегда правильный. Как я могу заставить потоки выполняться выполнять код в правильном порядке в последней строке цикла for? Спасибо!