所以我实现了一个使用简单的
在c ++中创建8个线程的代码使用lambda函数的线程数组....然后在完成后加入它们。
在我的笔记本电脑上,大约需要10分钟(没有线程,大约需要100分钟)
但是当我在AWS'EC2 C5 Extra Large上运行相同的代码时,代码实际上需要更长的时间来计算。
EC2可以实现并发吗?是否需要以某种方式进行修改?
class concurr{
public:
double arr[8];
void func1(vector<vector<double>> data,int x);
double func2(vector<vector<double>> data);
}
这些将是我将要处理的函数类型
double concurr::func2(vector<vector<double>> data){
thread threads[8];
for (int x = 0; x < 8; x++){
threads[x] = thread( [&]{ this->func1(data, x); } );
}
for (auto& th : threads){
th.join();
}
// ..... does something with the arr[8].... to come up with double = value
return value;
}
这是代码的大致轮廓。所以func1将接收“数据”并改变“x”的值并提出一些值并将它们存储在arr [x]
中