Я новичок в потоках и асинхронных функциях и пытаюсь использовать асинхронную функцию для возврата информации из функции ниже:
std::vector<std::vector<int> > calculatingSlices(SquareMatrix A, std::vector<std::vector<int> > slices)
и я делаю это, используя следующий код:
std::vector<std::vector<int>> slices;
std::vector<std:future<std::vector<int>>> results;
for(int i = 0; i < numOfThreads; i++){
results.push_back(std::async(std::launch::async, calculatingSlices, A, slices))
}
Я получаю эту ошибку, хотя:
error: attempt to use a deleted function
Итак, я предполагаю, что мой начальный вопрос - как объявить асинхронную функцию?
У меня также есть несколько вопросов о том, как работают асинхронные функции.
Если вы объявляете несколько асинхронных функций в цикле, как я делал выше, будут ли они выполняться одновременно? или они будут запускаться по одному, пока он проходит через цикл?
Если они запускаются по одному, что может быть лучше для одновременного запуска этой функции среди различного числа потоков?