我是线程和异步函数的新手,我正在尝试使用异步函数从以下函数返回信息:
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
所以我想我最初的问题是你如何声明一个异步函数?
我还有一些关于异步函数如何工作的问题。如果您在一个循环中声明多个异步函数,就像我在上面所做的那样,这些函数会同时运行吗?或者他们会在循环过程中一次运行一个吗?
如果他们一次运行一个,那么在不同数量的线程中同时运行此功能的更好方法是什么?